Python3.12內(nèi)置的71個函數(shù)匯總(按用途分類)
前言
Python 的強大之處在于它自帶了豐富的工具箱。截至 Python 3.12 版本,官方提供了 71 個內(nèi)置函數(shù)。這些函數(shù)無需 import 任何模塊即可直接使用。
為了方便查閱和記憶,本文將這 71 個函數(shù)按功能分類,并對每一個函數(shù)進行了詳細拆解:既有嚴肅的官方定義,也有通俗易懂的“人話”解釋,更附帶了直接能跑的代碼樣例。
一、數(shù)學與數(shù)字運算 (7個)
這組函數(shù)負責處理數(shù)值,絕對理性,沒有感情。
1.abs(x)
- ?? 官方:返回一個數(shù)的絕對值。
- ??? 人話:去油膩。不管正負,出來全是正能量。
- ?? 代碼:
abs(-10) # 10
2.divmod(a, b)
- ?? 官方:將兩個數(shù)作為參數(shù),返回一對商和余數(shù)。
- ??? 人話:小學除法。買10個蘋果分給3個人,每人幾個?剩幾個?一次搞定。
- ?? 代碼:
divmod(10, 3) # (3, 1)
3.max(iterable)
- ?? 官方:返回可迭代對象中的最大項,或兩個及以上實參中最大的。
- ??? 人話:卷王。在一堆數(shù)里找老大。
- ?? 代碼:
max([1, 99, 2]) # 99
4.min(iterable)
- ?? 官方:返回可迭代對象中的最小項,或兩個及以上實參中最小的。
- ??? 人話:潛水王。在一堆數(shù)里找老幺。
- ?? 代碼:
min([1, 99, 2]) # 1
5.pow(base, exp, mod=None)
- ?? 官方:返回
base的exp次冪;如果mod存在,則對mod取余。 - ??? 人話:指數(shù)爆炸。算次方的。第三個參數(shù)常用于加密算法(大數(shù)取模)。
- ?? 代碼:
pow(2, 3) # 8
6.round(number, ndigits=None)
- ?? 官方:返回
number舍入到小數(shù)點后ndigits位精度的值。 - ??? 人話:銀行家舍入。注意 Python 3 是“奇進偶不進”(四舍六入五取偶)。
- ?? 代碼:
round(2.5) # 2
7.sum(iterable, start=0)
- ?? 官方:從
start開始自左向右對iterable的項求和并返回總計值。 - ??? 人話:購物車結(jié)算。把列表里的數(shù)字加起來。
- ?? 代碼:
sum([1, 2, 3]) # 6
二、數(shù)據(jù)類型轉(zhuǎn)換與創(chuàng)建 (20個)
負責把對象從一種形態(tài)變成另一種形態(tài),俗稱“投胎”。
8.bool(x)
- ?? 官方:返回一個布爾值,即
True或False。 - ??? 人話:測謊儀。只有
0、None、空容器是False,其余全是True。 - ?? 代碼:
bool([]) # False
9.int(x)
- ?? 官方:根據(jù)一個數(shù)字或字符串返回一個整數(shù)對象。
- ??? 人話:取整。直接砍掉小數(shù)部分,不講四舍五入。
- ?? 代碼:
int(3.99) # 3
10.float(x)
- ?? 官方:返回從數(shù)字或字符串生成的浮點數(shù)。
- ??? 人話:變小數(shù)。加上小數(shù)點,身價立馬精確了。
- ?? 代碼:
float(3) # 3.0
11.complex(real, imag=0)
- ?? 官方:返回值為
real + imag*1j的復(fù)數(shù)。 - ??? 人話:變復(fù)數(shù)。實部+虛部,工科生的噩夢。
- ?? 代碼:
complex(1, 2) # (1+2j)
12.str(object='')
- ?? 官方:返回
object的字符串版本。 - ??? 人話:文本化。萬物皆可文本化。
- ?? 代碼:
str(123) # "123"
13.list(iterable)
- ?? 官方:實際上 list 是一種可變序列類型。
- ??? 人話:裝袋子。把能遍歷的東西都裝進一個列表里。
- ?? 代碼:
list("Hi") # ['H', 'i']
14.tuple(iterable)
- ?? 官方:實際上 tuple 是一種不可變序列類型。
- ??? 人話:塑封袋。裝進去就拿不出來、改不了的列表。
- ?? 代碼:
tuple([1, 2]) # (1, 2)
15.dict(**kwarg)
- ?? 官方:創(chuàng)建一個新的字典。
- ??? 人話:查字典。創(chuàng)建鍵值對映射。
- ?? 代碼:
dict(a=1) # {'a': 1}
16.set(iterable)
- ?? 官方:返回一個新的
set對象。 - ??? 人話:去重機。丟進去一堆重復(fù)的,出來只剩獨一無二的。
- ?? 代碼:
set([1, 2, 2]) # {1, 2}
17.frozenset(iterable)
- ?? 官方:返回一個新的
frozenset對象。 - ??? 人話:凍結(jié)集合。不能修改的集合,可以當字典的 key。
- ?? 代碼:
frozenset([1, 2])
18.bytes(source)
- ?? 官方:返回一個新的“bytes”對象, 是一個不可變序列。
- ??? 人話:機器糧。給計算機看的二進制數(shù)據(jù),不可變。
- ?? 代碼:
bytes([65]) # b'A'
19.bytearray(source)
- ?? 官方:返回一個新的 bytes 數(shù)組,可變序列。
- ??? 人話:橡皮泥??梢孕薷牡亩M制數(shù)據(jù)。
- ?? 代碼:
bytearray(b"Hi")
20.memoryview(obj)
- ?? 官方:返回由給定實參創(chuàng)建的“內(nèi)存視圖”對象。
- ??? 人話:透視眼。不復(fù)制數(shù)據(jù)直接看內(nèi)存,處理大文件神器。
- ?? 代碼:
v = memoryview(b'abc')
21.bin(x)
- ?? 官方:將一個整數(shù)轉(zhuǎn)變?yōu)橐粋€前綴為“0b”的二進制字符串。
- ??? 人話:變二進制。
- ?? 代碼:
bin(3) # '0b11'
22.oct(x)
- ?? 官方:將一個整數(shù)轉(zhuǎn)變?yōu)橐粋€前綴為“0o”的八進制字符串。
- ??? 人話:變八進制。
- ?? 代碼:
oct(8) # '0o10'
23.hex(x)
- ?? 官方:將整數(shù)轉(zhuǎn)換為以“0x”為前綴的小寫十六進制字符串。
- ??? 人話:變十六進制。
- ?? 代碼:
hex(255) # '0xff'
24.chr(i)
- ?? 官方:返回 Unicode 碼位為整數(shù)
i的字符。 - ??? 人話:數(shù)字轉(zhuǎn)字符。查表 97 對應(yīng) ‘a’。
- ?? 代碼:
chr(97) # 'a'
25.ord(c)
- ?? 官方:對表示單個 Unicode 字符的字符串,返回其整數(shù)碼點。
- ??? 人話:字符轉(zhuǎn)數(shù)字。
- ?? 代碼:
ord('a') # 97
26.ascii(object)
- ?? 官方:返回一個對象可打印的字符串,非 ASCII 字符會轉(zhuǎn)義。
- ??? 人話:去漢字化。中文會變成
\u亂碼。 - ?? 代碼:
ascii('你好') # '\u4f60\u597d'
27.repr(object)
- ?? 官方:返回包含一個對象的可打印表示形式的字符串。
- ??? 人話:卸妝水。給開發(fā)者看的原始字符串,通常帶引號。
- ?? 代碼:
repr("1") # "'1'"
三、邏輯檢查與反射 (15個)
最喜歡打聽“你是誰?”“你有什么?”“你行不行?”
28.all(iterable)
- ?? 官方:如果
iterable的所有元素為真,返回True。 - ??? 人話:全票通過。全是 True 才是 True。
- ?? 代碼:
all([True, 1]) # True
29.any(iterable)
- ?? 官方:如果
iterable的任一元素為真則返回True。 - ??? 人話:濫竽充數(shù)。只要有一個是 True,結(jié)果就是 True。
- ?? 代碼:
any([0, 1]) # True
30.callable(object)
- ?? 官方:如果參數(shù)
object是可調(diào)用的,返回True。 - ??? 人話:能喊嗎。屁股后面能不能加括號
()運行它? - ?? 代碼:
callable(print) # True
31.isinstance(object, classinfo)
- ?? 官方:如果參數(shù)
object是參數(shù)classinfo的實例,返回True。 - ??? 人話:查戶口。判斷你是不是某種類型。
- ?? 代碼:
isinstance(5, int) # True
32.issubclass(class, classinfo)
- ?? 官方:如果
class是classinfo的子類,返回True。 - ??? 人話:查祖宗。判斷一個類是不是另一個類的后代。
- ?? 代碼:
issubclass(bool, int) # True
33.type(object)
- ?? 官方:返回
object的類型。 - ??? 人話:照妖鏡??茨愕降资莻€什么東西。
- ?? 代碼:
type([]) # <class 'list'>
34.len(s)
- ?? 官方:返回對象的長度(元素個數(shù))。
- ??? 人話:量尺。量量你有多少貨。
- ?? 代碼:
len("Hi") # 2
35.id(object)
- ?? 官方:返回對象的“標識值”,通常是內(nèi)存地址。
- ??? 人話:身份證號。
- ?? 代碼:
id(x)
36.hash(object)
- ?? 官方:返回該對象的哈希值(如果它有的話)。
- ??? 人話:數(shù)字指紋。用于字典快速查找。
- ?? 代碼:
hash("hi")
37.dir(object)
- ?? 官方:返回該對象的有效屬性列表。
- ??? 人話:扒皮??纯催@個對象肚子里都有啥屬性和方法。
- ?? 代碼:
dir(str)
38.vars(object)
- ?? 官方:返回對象的
__dict__屬性。 - ??? 人話:偷看日記。把對象的屬性以字典形式顯示出來。
- ?? 代碼:
vars(obj)
39.hasattr(object, name)
- ?? 官方:如果字符串是對象的屬性之一的名稱,則返回
True。 - ??? 人話:你有嗎。
- ?? 代碼:
hasattr(str, 'upper') # True
40.getattr(object, name)
- ?? 官方:返回對象命名屬性的值。
- ??? 人話:給我拿。動態(tài)獲取屬性值。
- ?? 代碼:
getattr(obj, 'x')
41.setattr(object, name, value)
- ?? 官方:設(shè)置屬性值。
- ??? 人話:給你塞。動態(tài)給對象增加或修改屬性。
- ?? 代碼:
setattr(obj, 'x', 10)
42.delattr(object, name)
- ?? 官方:刪除該屬性。
- ??? 人話:給你扔。動態(tài)刪除屬性。
- ?? 代碼:
delattr(obj, 'x')
四、迭代與循環(huán) (12個)
讓你的 for 循環(huán)騷操作滿天飛。
43.range(start, stop, step)
- ?? 官方:實際上是一個不可變的序列類型。
- ??? 人話:造數(shù)機。生成一串數(shù)字序列,循環(huán)最愛。
- ?? 代碼:
list(range(3)) # [0, 1, 2]
44.enumerate(iterable, start=0)
- ?? 官方:返回一個枚舉對象。
- ??? 人話:帶號上崗。遍歷時順便給你標上序號。
- ?? 代碼:
list(enumerate(['a'])) # [(0, 'a')]
45.zip(*iterables)
- ?? 官方:在多個迭代器上并行迭代,返回元組。
- ??? 人話:拉鏈。把兩個列表對應(yīng)位置縫在一起。
- ?? 代碼:
list(zip([1], ['a'])) # [(1, 'a')]
46.filter(function, iterable)
- ?? 官方:用函數(shù)返回真的那些元素構(gòu)建迭代器。
- ??? 人話:篩子。只保留滿足條件的。
- ?? 代碼:
list(filter(bool, [0, 1])) # [1]
47.map(function, iterable)
- ?? 官方:將函數(shù)應(yīng)用于每一項并輸出其結(jié)果。
- ??? 人話:批量加工廠。給列表里每個元素都來一刀。
- ?? 代碼:
list(map(str, [1, 2])) # ['1', '2']
48.sorted(iterable)
- ?? 官方:根據(jù)項返回一個新的已排序列表。
- ??? 人話:整理狂。返回一個排好序的新列表。
- ?? 代碼:
sorted([2, 1]) # [1, 2]
49.reversed(seq)
- ?? 官方:返回一個反向的迭代器。
- ??? 人話:倒帶。倒著讀。
- ?? 代碼:
list(reversed([1, 2])) # [2, 1]
50.iter(object)
- ?? 官方:返回一個迭代器對象。
- ??? 人話:手動擋。把列表變成迭代器。
- ?? 代碼:
it = iter([1, 2])
51.next(iterator)
- ?? 官方:從迭代器中獲取下一項。
- ??? 人話:擠牙膏。擠一下出一個,沒貨了報錯。
- ?? 代碼:
next(it)
52.slice(start, stop, step)
- ?? 官方:返回一個切片對象。
- ??? 人話:手術(shù)刀。把
[0:5]這種切片操作存成變量。 - ?? 代碼:
s = slice(0, 1)
53.aiter(async_iterable)
- ?? 官方:返回異步迭代器。
- ??? 人話:異步手動擋。給
async for用的底層工具。 - ?? 代碼:
aiter(obj)
54.anext(async_iterator)
- ?? 官方:從異步迭代器返回下一項。
- ??? 人話:異步擠牙膏。
- ?? 代碼:
await anext(it)
五、類、編譯與底層 (7個)
進階玩法的基石,新手慎用。
55.property(fget=None, ...)
- ?? 官方:返回一個 property 屬性。
- ??? 人話:偽裝者。把方法偽裝成屬性,調(diào)用時不用加括號。
- ?? 代碼:
@property
56.classmethod(function)
- ?? 官方:把一個方法封裝成類方法。
- ??? 人話:班干部。綁定到類而不是實例。
- ?? 代碼:
@classmethod
57.staticmethod(function)
- ?? 官方:將方法轉(zhuǎn)換為靜態(tài)方法。
- ??? 人話:房客。寄宿在類里的普通函數(shù),跟類沒啥深層關(guān)系。
- ?? 代碼:
@staticmethod
58.super()
- ?? 官方:返回一個代理對象,將調(diào)用委托給父類。
- ??? 人話:找爸爸。調(diào)用父類的方法。
- ?? 代碼:
super().__init__()
59.object()
- ?? 官方:返回一個不帶特征的新對象,所有類的基類。
- ??? 人話:亞當。Python 所有對象的祖宗。
- ?? 代碼:
o = object()
60.compile(source, ...)
- ?? 官方:將源字符串編譯成代碼或 AST 對象。
- ??? 人話:翻譯官。把字符串代碼編譯成字節(jié)碼。
- ?? 代碼:
compile("print(1)", "", "exec")
61.__import__(name)
- ?? 官方:此函數(shù)會由
import語句發(fā)起調(diào)用。 - ??? 人話:底層召喚術(shù)。
import背后的真身,一般人用不到。 - ?? 代碼:
__import__('os')
六、輸入輸出與系統(tǒng)環(huán)境 (10個)
負責和用戶、文件系統(tǒng)、解釋器環(huán)境聊天。
62.input(prompt)
- ?? 官方:從輸入中讀取一行。
- ??? 人話:要飯。程序暫停,伸手管用戶要輸入。
- ?? 代碼:
name = input("Who?")
63.print(*objects)
- ?? 官方:將
objects打印到文本流。 - ??? 人話:大喇叭。新手唯一的調(diào)試工具。
- ?? 代碼:
print("Hello")
64.open(file, mode)
- ?? 官方:打開文件并返回 file object。
- ??? 人話:開門。操作文件。
- ?? 代碼:
f = open('t.txt', 'r')
65.help(object)
- ?? 官方:啟動內(nèi)置的幫助系統(tǒng)。
- ??? 人話:救命。彈出官方文檔。
- ?? 代碼:
help(list)
66.breakpoint()
- ?? 官方:此函數(shù)會在調(diào)用點進入調(diào)試器。
- ??? 人話:暫停鍵。代碼跑到這會自動卡住,進入調(diào)試模式。
- ?? 代碼:
breakpoint()
67.globals()
- ?? 官方:返回實現(xiàn)當前模塊命名空間的字典。
- ??? 人話:全局大查房??纯慈肿兞坑心男?。
- ?? 代碼:
globals()
68.locals()
- ?? 官方:返回表示當前本地符號表的字典。
- ??? 人話:局部小查房。看看當前函數(shù)里有哪些變量。
- ?? 代碼:
locals()
69.format(value, format_spec)
- ?? 官方:將
value轉(zhuǎn)換為“格式化后”的表示形式。 - ??? 人話:美顏相機。保留幾位小數(shù)?左對齊還是右對齊?
- ?? 代碼:
format(3.14, '.1f') # '3.1'
70.eval(expression)
- ?? 官方:對
expression參數(shù)進行求值。 - ??? 人話:計算器。把字符串當成一行代碼算出來。危險!
- ?? 代碼:
eval("1+1") # 2
71.exec(object)
- ?? 官方:此函數(shù)支持動態(tài)執(zhí)行 Python 代碼。
- ??? 人話:執(zhí)行官。比
eval更狠,能運行一整段代碼。極度危險! - ?? 代碼:
exec("print('Hi')")
總結(jié)
以上就是 Python 3.12 的 71 個內(nèi)置函數(shù) 全圖鑒。熟練使用這些“官方外掛”,能讓你的代碼從幾十行縮減為一行,既優(yōu)雅又高效。建議收藏本文,作為日常開發(fā)的速查字典!
本章有誤,請指正,Thanks?(?ω?)?
到此這篇關(guān)于Python3.12內(nèi)置的71個函數(shù)匯總(按用途分類)的文章就介紹到這了,更多相關(guān)Python3.12內(nèi)置的函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 一文帶你掌握5個鮮為人知的Python內(nèi)置函數(shù)
- 使用Python開發(fā)一個內(nèi)置函數(shù)大全解析工具(附源碼)
- 詳解Python中最常用的10個內(nèi)置函數(shù)
- Python中常見內(nèi)置函數(shù)的用法合集
- Python中常見的內(nèi)置函數(shù)使用講解
- Python中集合的內(nèi)置函數(shù)詳解
- Python字典dict常用內(nèi)置函數(shù)詳解
- Python常用內(nèi)置函數(shù)的使用教程詳解
- 六個Python3中使用最廣泛的內(nèi)置函數(shù)總結(jié)
- Python中常用的內(nèi)置函數(shù)
- Python學習之內(nèi)置函數(shù)總結(jié)
- 10個必須要掌握的Python內(nèi)置函數(shù)
相關(guān)文章
Python接口傳輸url與flask數(shù)據(jù)詳解
這篇文章主要介紹了Python通過接口傳輸url與flask數(shù)據(jù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-09-09

