1、作用域相關 locals() 功能:返回當作用域中的名字 globals() 功能:返回全局作用域中的名字 2、迭代器/生成器相關 range() 功能:生成數據 iter() 功能:獲取迭代器,內部實際使用的是__iter__()方法來獲取迭代器 next() 功能:迭代器向下執行一次,內部實 ...
1、作用域相關
- locals()
功能:返回當作用域中的名字
- globals()
功能:返回全局作用域中的名字
2、迭代器/生成器相關
- range()
功能:生成數據
lst = [i for i in range(10)] print(lst) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- iter()
功能:獲取迭代器,內部實際使用的是__iter__()方法來獲取迭代器
- next()
功能:迭代器向下執行一次,內部實際使用了__next__()方法返回迭代器的下一個項目
lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] ret = iter(lst) # 獲取迭代器 print(next(ret)) # 0 執行迭代器
3、字元串類型代碼的執行
- eval()
功能:執行字元串類型的代碼。並返回最終結果
print(eval("[11, 22, 33, 44]")) # [11, 22, 33, 44] print(eval("2+2")) # 4 def func(): print(666) eval("func()") # 666
- exec()
功能:執行字元串類型的代碼
exec(""" for i in range(10): print(i) """) # 0 1 2 3 4 5 6 7 8 9 exec(""" def func(): print("我是賽利亞") func() """) # 我是賽利亞
- compile()
功能:將字元串類型的代碼編譯,有返回值的字元串形式代碼用eval()求值,沒有返回值的字元串形式代碼用exec()執行
參數說明:
1)resource:要執行的代碼,動態代碼片段
2)文件名:代碼存放的文件名,當傳入第一個參數的時候,這個參數給空就可以了
3)模式,取值有3個:
a) exec:一般放一些流程語句的時候
b) eval:resource只存放一個求值表達式
c) single:resource存放的代碼有交互的時候,mode應為single,但只允話代碼只有一行,否則報錯
code = """ for i in range(5): print(i) """ c1 = compile(code, "", mode="exec") exec(c1) # 0 1 2 3 4 code2 = """ name = input("請輸入你的名字:") """ c2 = compile(code2, "", mode="single") exec(c2) print(name) # Tom
4、輸入輸出相關
- input()
功能:獲取用戶輸入的內容
- print()
功能:列印輸出
5、記憶體相關
- hash()
功能:獲取對象的哈希值(int,bool,str,tuple)
註意:
1) 數字的哈希值就是它本身
2) 每次調用hash()得到的哈希值不一樣(除數字外),所以哈希值不能做密碼
num = 10 s = "Hello" print(hash(num)) # 10 # 第一次調用 print(hash(s)) # 3718209680369926059 # 再次調用 print(hash(s)) # 263127024043316082
- id()
功能:獲取對象的記憶體地址
6、與文件相關
- open()
功能:用於打開一個文件,創建一個文件句柄
7、模塊相關
- __import__()
功能:用於動態載入類和函數
8、幫助
- help()
功能:函數用於查看函數或模塊用途的詳細說明
9、調用相關
- callable()
功能:用於檢查一個對象是否是可調用的。如果返回True, object有可能調用失敗,但如果返回False,那麼調用絕對不會成功
n = 10 def func(): pass print(callable(n)) # False print(callable(func)) # True
10、查看內置屬性
- dir()
功能:查看對象的內置屬性,方法。訪問的是對象的__dir__()方法
11、基礎數據類型相關
1)和數字相關
a) 數據類型
- bool()
功能:將給定的數據轉換成bool值。如果不給值,返回False
- int()
功能:將給定的數據轉換成int值。如果不給值,返回0
- float()
功能:將給定的數據轉換成float值,也就是小數
- complex()
功能:創建一個複數,第一個參數為實部,第二個參數為虛部,或者第一個參數直接用字元串來描述複數
b) 進位轉換
- bin()
功能:將給的參數轉換成二進位
- otc()
功能:將給的參數轉換成八進位
- hex()
功能:將給的參數轉換成十六進位
c) 數學運算
- abs()
功能:返回絕對值
- divmod()
功能:返回商和餘數
- round()
功能:四捨五入
對於x.5,如果整數個位數為偶數靠近偶數進行捨棄,如果整數個位數為奇數靠近偶數進行捨棄
print(round(4.5)) # 4 print(round(5.5)) # 6 print(round(5.4)) # 5
- pow(a, b)
功能:求a的b次冪,如果有三個參數,則求完次冪後對第三個數取餘
print(pow(2, 3)) # 8 print(pow(2, 3, 5)) # 3
- sum(可迭代對象)
功能:求和
- min()
功能:求最小值
- max()
功能:求最大值
2)和數據結構相關
a) 列表和元組
- list()
功能:將一個可迭代對象轉換成列表
- tuple()
功能:將一個可迭代對象轉換成元組
- reversed()
功能:將一個序列翻轉,返回翻轉序列的迭代器
lst = [1, 2, 3, 4, 5, 6] ret = reversed(lst) print(ret) # <list_reverseiterator object at 0x000001B589038208> for i in ret: print(i) # 6 5 4 3 2 1
- slice
功能:列表的切片
lst = [1, 2, 3, 4, 5, 6] s = slice(1, 5, 2) print(lst[s]) # [2, 4]
b) 字元串相關
- str()
功能:將數據轉化成字元串
- format()
功能:與具體數據相關,用於計算各種小數,精算等
# 字元串 print(format('test', '<20')) # 左對齊 print(format('test', '>20')) # 右對齊 print(format('test', '^20')) # 居中 # 數值 print(format(3, 'b')) # ⼆進位 print(format(97, 'c')) # 轉換成unicode字元 print(format(11, 'd')) # ⼗進位 print(format(11, 'o')) # ⼋進位 print(format(11, 'x')) # ⼗六進位(⼩寫字母) print(format(11, 'X')) # ⼗六進位(⼤寫字母) print(format(11, 'n')) # 和d一樣 print(format(11)) # 和d一樣 # 浮點數 print(format(123456789, 'e')) # 科學計數法. 預設保留6位小數 print(format(123456789, '0.2e')) # 科學計數法. 保留2位小數(小寫) print(format(123456789, '0.2E')) # 科學計數法. 保留2位小數(大寫) print(format(1.23456789, 'f')) # 小數點計數法. 保留6位小數 print(format(1.23456789, '0.2f')) # 小數點計數法. 保留2位小數 print(format(1.23456789, '0.10f')) # 小數點計數法. 保留10位小數 print(format(1.23456789e+10000, 'F')) # 小數點計數法.
- bytes()
功能:把字元串轉化成bytes類型
s = "你好" bs = bytes(s, encoding="utf-8") print(bs) # b'\xe4\xbd\xa0\xe5\xa5\xbd'
- bytearray()
功能:返回一個新位元組數組,這個數組裡的元素是可變的,並且每個元素的值的範圍是[0, 256]
ret = bytearray('alex', encoding='utf-8') print(ret) # bytearray(b'alex') ret[0] = 65 print(ret) # bytearray(b'Alex')
- memoryview()
功能:查看bytes在記憶體中的情況
s = "你好" ret = memoryview(s.encode("utf-8")) print(ret) # <memory at 0x0000022FC0071048>
- ord()
功能:輸入字元找帶字元編碼的位置
- chr()
功能:輸入位置數字找出對應的字元
- ascii()
功能:在ascii碼中就返回這個值,如里不在就返回\u...
s = "你好" print(ascii(s)) # '\u4f60\u597d'
- repr()
功能:返回一個對象的官方表示形式
s = "你好\我叫賽利亞" print(repr(s)) # '你好\\我叫賽利亞' print(s) #你好\我叫賽利亞
c) 數據集合
- dict()
功能:創建一個字典
- set()
功能:創建一個集合
- frozenset()
功能:創建一個凍結的集合,凍結的集合不能進行添加和刪除操作
d) 其他相關
- len()
功能:返回一個對象中的元素的個數
- sorted()
功能:對可迭代對象進行排序操作
- enumerate(可迭代對象,start=0)
功能:獲取集合的枚舉對象
lst = [11, 22, 33] for index, el in enumerate(lst): print(index, el) 結果: 0 11 1 22 2 33
- all()
功能:可迭代對象中全部是True,結果才是True
print(all([1, 2, 0, True])) # False
- any()
功能:可迭代對象中有一個是True, 結果就是True
print(any([1, 2, 0, True])) # True
- zip()
功能:函數用於將可迭代對象作為參數,將對象中對應的元素打包成一個個元組,然後返回由這些元組組成的一個可迭代對象zip object。如果各個迭代器的元素不一致,則返回對象長度與最短的對象相同
lst1 = [1, 2, 3] lst2 = ["a", "b", "c", "d"] lst3 = (11, 22, 33, 44, 55) print(zip(lst1, lst2, lst3)) # <zip object at 0x000001E7D275BF48> print(list(zip(lst1, lst2, lst3))) #[(1, 'a', 11), (2, 'b', 22), (3, 'c', 33)] for i in zip(lst1, lst2, lst3): print(i) # (1, 'a', 11) (2, 'b', 22) (3, 'c', 33)
內置函數結構圖如下:
https://www.processon.com/mindmap/5bdbfba6e4b0e452133837a3