基本數據類型
# 數字
# 整型,浮點型,布爾型,複數
# 組
# 序列,集合,字典
組
# 序列-字符串 str 不可變類型
# 序列-列表 list [1,2,3,4,5,6,'as'] 可變類型
# 序列-元組 tuple (1,2,3,4,5,6,'as') 不可變類型
#和列表選擇、切片很相似
#type((1)) int;type(('as')) str 此處()不是元祖,而是運算符
# ord() 查詢字符串返回對應的 ASCII 數值
# 集合 set {1,2,3,4,5}
# 1 無序
# 2 不重複 {1,1,2,2,3,3} {1,2,3}
# 3 差集- {1,2,3,4,5}-{3,4} {1,2,5}
# 4 交集&
# 5 並集|
# 6 type({}) 爲dict字典;set() 創建一個無序不重複元素集
# 字典 dict {'q':'打擊','w':'前進'}
# key不重複
# key需爲不可變類型,不能爲列表,可以爲元組
# {} 定義空字典
包、模塊、類
# 區分包和文件夾 包內含__init__.py文件 此模塊名爲:init,內容可爲空,加上,可解決
# import引入模塊
# from t import c1 從t模塊引入c1類、方法、變量或者 從t文件引入c1模塊
# from t import * 可引入t所有類 不推薦,當命名衝突時難處理
# python 一行建議不超過80,換行,上行末尾加:\,不推薦,可用括號
# 包和模塊不會被重複導入
# 避免循環引入模塊
類
# 特殊類:枚舉 enum (from enum import Enum)
# 枚舉標籤名稱最好用大寫,表示常亮
# 枚舉的意義重在標籤,不在數值
# 字典和類變量的缺點是:可變,值可被輕易更改;沒有防止相同標籤的功能
# 枚舉類型:VIP.GREEN 枚舉名稱:VIP.GREEN.name 枚舉值:VIP.GREEN.value
# 枚舉可以被for in遍歷,遍歷VIP.__members__.items()或VIP.__members,可將別名加入遍歷
# 枚舉可以做==比較,不能做大小比較
# 枚舉值相同時,第二個標籤將成爲第一個的別名
# 用法:在數據庫中存儲數值,在代碼中用標籤代表類型,通過數字轉換成數據類型 a=1 VIP(a)
# 值需強制爲整型數字,不許值相同時(from enum import IntEnum,unique) ,class VIP(IntEnum,unique):
函數
# 函數可以作爲結果被返回,函數可以賦值給另外一個變量
# 閉包(和函數的作用域有關)
# 閉包=函數+環境變量
# 環境變量:定義在函數外部,非全局變量,避免外部對其影響
# 環境變量保存在 函數.__closure__[0].cell_contents中
# nonlocal將變量轉爲環境變量
# 閉包容易造成內存泄漏,用面向對象更加主流
#三目運算 x if x>y else y
# map 函數,序列 每個元素依次執行函數
# 結合lambda匿名函數使用 list_x=[1,2,3] list_y=[1,2,3] r=map(lambda x,y:x*x+y,list_x,list_y)
# reduce python3中已不是全局函數 from functools import reduce
# 連續計算 返回結果
裝飾器 decorator(AOP編程思想)
# 不改變原有函數,增加新的特性
# 最有價值的功能 @+裝飾器的名字 不改變原函數調用方式
# 直接調用原函數即可,無需通過新函數(體現出原函數和新函數之間的關聯)
# 爲滿足原函數可任意傳入參數,可在裝飾器內的函數加入 可變參數(*任意+參數名):例如:wrapper(*args)
# **kw 關鍵字參數,可以指定任意數量,打印kw會以字典形式出現
# 爲支持**kw關鍵字參數,可在裝飾器內部加入參數 **kw