今日內容 複習 內容詳細 1.Python入門 1.1 環境的搭建 mac系統上搭建python環境。 環境變數的作用:方便在命令行(終端)執行可執行程式,將可執行程式所在的目錄添加到環境變數,那麼以後無需再輸入路徑。 1.2 變數命名 變數 全局變數 函數 常量 1.3 運算符 is和==的區別? ...
今日內容
- 複習
內容詳細
1.Python入門
1.1 環境的搭建
mac系統上搭建python環境。
環境變數的作用:方便在命令行(終端)執行可執行程式,將可執行程式所在的目錄添加到環境變數,那麼以後無需再輸入路徑。
1.2 變數命名
變數
name = 'alex'
全局變數
NAME = "oldboy"
函數
def func_list(): pass
常量
不允許修改的值,Python中執行約定。
1.3 運算符
v = 1 or 2
v = 0 or 2
v = 1 and 2
v = 0 and 2
val = v if v else 666
val = v or 666 # 源碼
is和==的區別?
1.4 數據類型
int
- 整型
- 其他進位轉換十進位 int('0b11011',base=2)
- int / long
- 除法
bool
- 0 None 空
str,字元串類型,一般用於記憶體中做數據操作。
v = 'alex' # unicode編碼存儲在記憶體。
bytes,位元組類型,一般用於數據存儲和網路傳輸。
v = 'alex'.encode('utf-8') # 將字元串轉換成位元組(由unicode編碼轉換為utf-8編碼) v = 'alex'.encode('gbk') # 將字元串轉換成位元組(由unicode編碼轉換為gbk編碼)
list
tuple
dict
set
None
1.5 編碼
- py預設解釋器編碼
- py2
- py3
以什麼編碼存儲就要以什麼編碼打開(建議Pycharm設置成UTF-8編碼)。
- 常見的編碼
- ascii
- unicode
- utf-8
- gbk
- gb2312
1.6 深淺拷貝
針對可變類型,將其重新創建一份。
- 淺拷貝:第一層
- 深拷貝:所有層。
import copy
v = [11,22,33,[11,22,3]]
v1 = copy.copy(v1)
v2 = copy.deepcopy(v)
1.7 py2和py3區別
- 字元串類型不同
- py3: str bytes
- py2: unicode str
- 預設解釋器編碼
- 輸入輸出
- int
- int long
- 除法
- range和xrang
- 模塊和包
- 字典
- keys
- py2:列表
- py3:迭代器,可以迴圈但不可以索引
- values
- py2:列表
- py3:迭代器,可以迴圈但不可以索引
- items
- py2:列表
- py3:迭代器,可以迴圈但不可以索引
- keys
- map/filter
- py2:返回列表
- py3:返回迭代器,可以迴圈但不可以索引
2.函數
2.1 內置函數
- 常用內置函數:open / id / type / len / range ...
- is 和 == 的區別? 通過id來進行檢查
2.2 自定義函數
函數式編程:增加代碼的可讀性和重用性。
函數基本格式:
def show(name,age): """ 函數是乾什麼的... :param name: :param age: :return: """ return None
函數做參數
函數做變數
函數做返回值
- 閉包
- 裝飾器
生成器
def func(): print(123) yield 1 yield 3 # 生成器 v = func() # 迴圈v時或v.__next__() 時。
def base(): yield 88 yield 99 def func(): yield 1 yield 2 yield from base() yield 3 result = func() for item in result: print(item)
生成器推導式
# def func(): # result = [] # for i in range(10): # result.append(i) # return result # v1 = func() v1 = [i for i in range(10)] # 列表推導式,立即迴圈創建所有元素。 print(v1) # def func(): # for i in range(10): # yield i # v2 = func() v2 = (i for i in range(10)) # 生成器推導式,創建了一個生成器,內部迴圈為執行。 # 面試題:請比較 [i for i in range(10)] 和 (i for i in range(10)) 的區別?
# 示例一 # def func(): # result = [] # for i in range(10): # result.append(i) # return result # v1 = func() # for item in v1: # print(item) # 示例二 # def func(): # for i in range(10): # def f(): # return i # yield f # # v1 = func() # for item in v1: # print(item()) # 示例三: v1 = [i for i in range(10)] # 列表推導式,立即迴圈創建所有元素。 v2 = (lambda :i for i in range(10)) for item in v2: print(item())
迭代器
3.模塊
3.1 內置模塊
- 常見內置模塊:json / datetime / time / os / sys
3.2 第三方模塊
- requests
- xlrd,xlwd
3.3 自定義模塊
- 文件
- 文件夾 / 包
3.4 使用模塊
導入
import 模塊
from 模塊.模塊 import 模塊
from 模塊.模塊.模塊 import 函數
相對導入【不推薦】
from . import xxx from .. import xxx
註意:文件和文件夾的命名不能是導入的模塊名稱相同,否則就會直接在當前目錄中查找。
調用模塊內部元素
- 函數()
- 模塊.函數()