21.切片使用時(shí)注意點(diǎn):指定的索引區(qū)間,包括起始索引對(duì)應(yīng)的元素,不包括結(jié)束索引對(duì)應(yīng)的元素。即:左開右閉。
如果,要跳躍選取區(qū)間中的元素,則再指定步長(zhǎng)即可。
22.切片:如果要從起始索引處開始,直接取到最后,則結(jié)束索引不指定,就默認(rèn)到結(jié)束。
23.切片:正序索引默認(rèn)從0開始;逆序時(shí),最后一個(gè)元素的索引為-1
24.切片:把步長(zhǎng)設(shè)置為負(fù)數(shù),則表示逆序切。例如:my_str="abcde",則my_str[::-1]得到:"edcba"
25.max()和min()函數(shù)對(duì)list、字符串作用時(shí),拿到的是最大和最小元素。對(duì)字典作用時(shí),拿到的是最大和最小的key
26.列表、元組同樣支持乘法*和加法+運(yùn)算,會(huì)對(duì)列表或者元組進(jìn)行合并處理。
[1,2,3] *2--->[1,2,3,1, 2, 3]
[1,2,3] +[4, 5] --->[1,2,3,4,5]
27.列表的list1.append(list2)會(huì)把list2當(dāng)做一個(gè)元素放在list1的末尾。列表的list1.extend(list2)會(huì)把list2中的每一個(gè)元素拿出依次放在list1的末尾。
28.in、not in在判斷字符串、list、元組等,會(huì)對(duì)元素值進(jìn)行比對(duì);而對(duì)字典,只是對(duì)key進(jìn)行比對(duì)。
29.for循環(huán)完整形式:
for...in...:
else :
...
這里的else代碼,只有在上面的循環(huán)完全循環(huán)后才會(huì)執(zhí)行;一旦上面的循環(huán),因遇到break中止,則else代碼是不會(huì)被執(zhí)行的。
30.print()函數(shù)打印輸出后,默認(rèn)換行。如果不想換行,則print("xxxx", end="...")
31.shebang:即在xxx.py文件的第一行加上#! Python解釋器的完整路徑
這樣xxx.py就可以直接運(yùn)行,不再需要python3 xxxx.py
32.獲取完整路徑:witch xxxx
例如:witch python3
33.修改某個(gè)文件的權(quán)限:chmod +x aaa.py
給aaa.py文件添加可執(zhí)行權(quán)限
34.Python中,數(shù)據(jù)和變量是分開存儲(chǔ)的。函數(shù)的傳參和返回值,本質(zhì)上都是傳的數(shù)據(jù)的引用,而不是數(shù)據(jù)本身。
35.數(shù)字類型、字符串及元組是不可變類型;列表和字典是可變類型。這里的可變及不可變的是在數(shù)據(jù)所在內(nèi)存中的地址。
可變:在內(nèi)存中的地址不變的情況下,可以改變數(shù)據(jù)的值;
不可變:要改變數(shù)據(jù)的值,只能通過改變指向內(nèi)存中的地址。
36.字典的鍵值對(duì)的key只能是數(shù)字類型、字符串及元組等不可變類型,如果把key設(shè)置為可變類型的,則會(huì)報(bào)錯(cuò)!unhashale type!
這是因?yàn)镻ython中,會(huì)對(duì)字典的key進(jìn)行hash處理,以便后續(xù)對(duì)字典增刪改查的方便。而Python中的hash(o)算法,這里的入?yún)只能是不可變的,若是可變的會(huì)拋出異常。
37.Python中不可hash(o)處理的類型有:list,dict
38..字典的鍵值對(duì)的值可以是任意類型。
39.用global修飾的局部變量不再重新分配地址,而是指向同名的全局變量了。
40.開發(fā)時(shí),如果定義了全局變量,應(yīng)該把全局變量定義在所有函數(shù)的上方,以保證所有函數(shù)都可以訪問到定義的全局變量。