程式碼塊
執行的一個單元就叫程式碼塊
所有的檔案都基於程式碼塊執行
程式在檔案裡寫 執行程式就要執行檔案
一個檔案就是一個程式碼塊
互動命令(cmd視窗)中一行就是一個程式碼塊
id:記憶體地址 print之後是一個虛擬的id地址
== 和 is
== 判斷兩個物件的值是否相同
lst1 = [1,2,3]
lst2= [1,2,3]
lst1 == lst2 true 內容是相同的
lst1 is lst2 False 是兩個不同的資料
is 身份運算 判斷兩個物件的記憶體地址是否相同
程式碼塊的駐留 快取機制
目的 都是提高效能 節省效能空間
在python中 預設會把數字 字串 布林值進行快取
好處: 不用重複建立字串 節省效能空間
針對物件: int str bool 空tuple
int範圍 任意數字
str範圍 幾乎所有str 如果str×數字以後字元超過20 False
資料型別的相互轉化 補充:
int bool str 三者可以互相轉化
bool 可以與所有的資料型別進行轉換
所有為空的資料型別轉為bool都為False
0 '' [] () None 都為False
str轉list 用split分割
list轉str 用join 前提是list裡內容全部是False
str轉tuple partition
tuple轉str 用join 之後還可以轉化成列表
list轉tuple 誰轉化誰 就把誰包起來
fromkeys:
dic = dict.fromkeys([1,2,3],'太白')
print(dic)
dic = {1:'太白',2:'太白',3:'太白'}
如果tuple中只有單個元素且沒有逗號 則型別是元素本身的型別
如果value是一個可變的資料型別 那麼在記憶體中key佔用的是一個地址 後來的值代替先來的值
集合 set
其實就是一種特殊的字典 所有的key對應的value都是None 留下的所有的key就是集合
建立空集合的唯一辦法 呼叫set函式
s = set()
建立帶元素的集合
s = {1,2,3}
從可迭代物件中建立集合 (list str tuple dict)
s = set(1,2,3)
增刪改 (集合是無序的 不能使用查的操作)
增 add 如果元素存在 不做任何動作
刪 pop 依次從集合中隨即刪除一個元素 如果集合為空 報錯
dsicard 從集合中刪除指定元素 如果不存在 什麼都不做
remove 從集合中刪除指定元素 如果不存在就報錯
clear 請空集合
集合常用四大操作
並集 |
交集&
差集-
對稱差 ^
改 update 用二者的並集更新當前集合
difference_update 用二者的差集更新當前集合
intersection_update 用二者的交集更新當前集合
symmtric_difference_update 用二者的對稱差 更新當前集合
判斷功能
isdisjiont 判斷兩個集合是否沒有交集
issubset 判斷當前集合是否是後者的子集
issuperset 判斷後者是否是當前集合的子集
集合的使用場景
1.判斷一個元素是否在指定的範圍之內
2.方便數學上的集合操作
3.對序列資料型別中的重複元素進行去除(去重):
lst = [1,2,3,4,4,4,4,4,5,5,5,6,6,7,7,7,8,5]
s = set(lst) 轉換成集合 直接去重
lst = list(s) 去重完畢後重新轉化為列表