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

