Python 中 10 個(gè)常用的內(nèi)置函數(shù)

大家好,我是安果!
在 3.8 版本中,Python 解釋器有近 69 個(gè)內(nèi)置函數(shù)可供使用,有了它們能極大地提高編碼效率

數(shù)量雖然不少,但在日常搬磚中只用到其中一部分,根據(jù)使用頻率和用法,這里列出來(lái)幾個(gè)本人認(rèn)為不錯(cuò)的內(nèi)置函數(shù),結(jié)合一些例子介紹給大家
complex()
返回一個(gè)形如 a+bj 的復(fù)數(shù),傳入?yún)?shù)分為三種情況:
參數(shù)為空時(shí),返回 0j參數(shù)為字符串時(shí),將字符串表達(dá)式解釋為復(fù)數(shù)形式并返回 參數(shù)為兩個(gè)整數(shù)(a,b)時(shí),返回 a+bj參數(shù)只有一個(gè)整數(shù) a 時(shí),虛部 b 默認(rèn)為0,函數(shù)返回 a+0j
>>> complex('1+2j')
(1+2j)
>>> complex()
0j
>>> complex(1,2)
(1+2j)
>>> complex(2)
(2+0j)
dir()
不提供參數(shù)時(shí),返回當(dāng)前本地范圍內(nèi)的名稱(chēng)列表 提供一個(gè)參數(shù)時(shí),返回該對(duì)象包含的全部屬性
>>> class Test:
def first(self):
return 1
def second(self):
return 2
>>> dir(Test)# 提供參數(shù)時(shí)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'first', 'second']
>>> dir()# 未提供參數(shù)時(shí)
['Test', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
divmod(a,b)
a -- 代表被除數(shù),整數(shù)或浮點(diǎn)數(shù); b -- 代表除數(shù),整數(shù)或浮點(diǎn)數(shù);
根據(jù) 除法運(yùn)算 計(jì)算 a,b 之間的商和余數(shù),函數(shù)返回一個(gè)元組(p,q) ,p 代表商 a//b ,q 代表余數(shù) a%b
>>> divmod(21,4)
(5, 1)
>>> divmod(20.1,3)
(6.0, 2.1000000000000014)
enumerate(iterable,start=0)
iterable -- 一個(gè)可迭代對(duì)象,列表、元組序列等 start -- 計(jì)數(shù)索引值,默認(rèn)初始為0
該函數(shù)返回枚舉對(duì)象是個(gè)迭代器,利用 next() 方法依次返回元素值,每個(gè)元素以元組形式存在,包含一個(gè)計(jì)數(shù)元素(起始為 start )和 iterable 中對(duì)應(yīng)的元素值;
>>> stu = ['xiao','zhang','li','qian']
>>> enumerate(stu)
<enumerate object at 0x0000025331773F48>
>>> list(enumerate(stu))# 默認(rèn)start = 0
[(0, 'xiao'), (1, 'zhang'), (2, 'li'), (3, 'qian')]
>>> list(enumerate(stu,start = 1))# 默認(rèn)start = 1
[(1, 'xiao'), (2, 'zhang'), (3, 'li'), (4, 'qian')]
eval(expression,globals,locals)
expression -- 字符串表達(dá)式 globals -- 變量作用,全局命名空間,如果提供必須為字典形式;可選參數(shù) locals -- 變量作用域,局部命名空間,如果提須可為任何可映射對(duì)象;可選參數(shù)
將字符串表達(dá)式解析,返回執(zhí)行結(jié)果
>>> eval("2+2")
4
>>> eval("2==2")
True
filter(function,iterable)
function -- 提供篩選函數(shù)名,返回 true 或 false
iterable -- 列表、元組等可迭代對(duì)象
函數(shù)返回 iterable 中滿(mǎn)足 function 為 True 的元素;假設(shè)有一個(gè)列表,我們只需要其中的一部分元素,這時(shí)就可以提前寫(xiě)一個(gè)函數(shù)再借助 filter 來(lái)進(jìn)行過(guò)濾
>>> num_list = list(range(20))
>>> num_list
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> def mod_three(num):
if(num%3==0):
return True
else:
return False
>>> filter(mod_three,num_list)
<filter object at 0x00000253315A6608>
>>> list(filter(mod_three,num_list))
[0, 3, 6, 9, 12, 15, 18]
isinstance(object,classinfo)
object --表示一個(gè)類(lèi)型的對(duì)象,若不是此類(lèi)型, 函數(shù)恒返回 False; calssinfo -- 為一個(gè)類(lèi)型元組或單個(gè)類(lèi)型;
判斷對(duì)象 object 的類(lèi)型是否為 classinfo 或 classinfo 中其中一個(gè)類(lèi)型,返回 True 或 False;
調(diào)試Python程序時(shí),障礙之一就是初始變量沒(méi)有定義類(lèi)型,所以在代碼編寫(xiě)或者調(diào)試時(shí),isinstance() 函數(shù)常被用來(lái)判斷變量類(lèi)型,幫助我們了解程序整個(gè)邏輯防止出錯(cuò)
>>> isinstance(num,str)
False
>>> isinstance(num,int)
True
map(function,iterable,...)
function -- 執(zhí)行函數(shù); iterable -- 可迭代對(duì)象;
將 iterable 中的每一個(gè)元素放入函數(shù) function 中依次執(zhí)行,得到與 iteable 元素?cái)?shù)量相同的迭代器;
map() 中可迭代對(duì)象可以為多個(gè),其中函數(shù) function 中的參數(shù)為所有可迭代對(duì)象中并行元素,最終得到的迭代器的數(shù)量是以提供元素?cái)?shù)量最少可迭代對(duì)象為基準(zhǔn),當(dāng)數(shù)量最少的可迭代對(duì)象所有元素輸入完畢后即執(zhí)行停止
>>> def fun_a(a,b):
return a+2*b
>>> num_list1 = [1,2,3,4]
>>> num_list2 = [2,3,4,5]
>>> list(map(fun_a,num_list1,num_list2))
[5, 8, 11, 14]
input()
函數(shù)用于人機(jī)交互,讀取從輸入端輸入的一行內(nèi)容,轉(zhuǎn)化為字符串
>>> s = input('input:')
input:小張Pyhon
>>> s
'小張Pyhon'
zip(*iteables)
*iterables -- 兩個(gè)或兩個(gè)以上可迭代對(duì)象
將所有 iterable 對(duì)象中元素按參數(shù)順序以元素并行方式聚合在一起,得到一個(gè)迭代器,迭代器中每個(gè)元素是個(gè)n元素元組,n 表示函數(shù)中輸入 iterable 參數(shù)數(shù)量
>>> num_list1 = [1,2,3,4]
>>> num_list2 = [2,3,1,2]
>>> list(zip(num_list1,num_list2))
[(1, 2), (2, 3), (3, 1), (4, 2)]
zip() 函數(shù)功能等價(jià)于
def zip(*iterables):
# zip('ABCD', 'xy') --> Ax By
sentinel = object()
iterators = [iter(it) for it in iterables]
while iterators:
result = []
for it in iterators:
elem = next(it, sentinel)
if elem is sentinel:
return
result.append(elem)
yield tuple(result)
除了上面列舉的 10 個(gè)之外,還有其它 59 個(gè)內(nèi)置函數(shù),想了解的小伙伴可點(diǎn)擊下方原文閱讀去了解
對(duì)于 Python 開(kāi)發(fā)者來(lái)說(shuō),掌握這些內(nèi)置函數(shù)非常有用,一方面能提高編碼效率,另一方面也能提高代碼簡(jiǎn)潔性;在某一方面功能雖然沒(méi)有第三方庫(kù)函數(shù)強(qiáng)大,但也不能被小覷
好了以上就是本篇文章的全部?jī)?nèi)容了,最后感謝大家閱讀,我們下期見(jiàn)~
參考:https://docs.python.org/3.8/library/functions.html#zip
推薦閱讀
推薦 5 款私藏的優(yōu)質(zhì) Chrome 插件(2) 騷操作 | 高效辦公,Python 自動(dòng)化教你一鍵獲取日志! 10 分鐘,帶你徹底掌握 SQL 多表查詢(xún)(建議收藏) Python 中 Mock 到底該怎么玩?一篇文章告訴你(超全)
覺(jué)得文章不錯(cuò),請(qǐng)分享給更多人~,比心
~
