python內(nèi)置函數(shù)是什么?一起來(lái)看下吧:

創(chuàng)新互聯(lián)建站于2013年開始,先為榆陽(yáng)等服務(wù)建站,榆陽(yáng)等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為榆陽(yáng)企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
python內(nèi)置函數(shù)有:
abs:求數(shù)值的絕對(duì)值
abs(-2) 2
pmod:返回兩個(gè)數(shù)值的商和余數(shù)
pmod(5,2) (2,1) pmod(5.5,2) (2.0,1.5)
bool:根據(jù)傳入的參數(shù)的邏輯值創(chuàng)建一個(gè)布爾值
bool()?#未傳入?yún)?shù) False bool(0)?#數(shù)值0、空序列等值為False False bool(1) True
all:判斷可迭代對(duì)象的每個(gè)元素是否都為True值
all([1,2])?#列表中每個(gè)元素邏輯值均為True,返回True True ?all(())?#空元組 True ?all({})?#空字典 True
help:返回對(duì)象的幫助信息
help(str)? Help?on?class?str?in?module?builtins: class?str(object) |??str(object='')?-?str |??str(bytes_or_buffer[,?encoding[,?errors]])?-?str |?? |??Create?a?new?string?object?from?the?given?object.?If?encoding?or |??errors?is?specified,?then?the?object?must?expose?a?data?buffer |??that?will?be?decoded?using?the?given?encoding?and?error?handler. |??Otherwise,?returns?the?result?of?object.__str__()?(if?defined) |??or?repr(object). |??encoding?defaults?to?sys.getdefaultencoding(). |??errors?defaults?to?'strict'. |?? |??Methods?defined?here: |?? |??__add__(self,?value,?/) ??????????Return?self+value.
_import_:動(dòng)態(tài)導(dǎo)入模塊
index?=?__import__('index') index.sayHello()
locals:返回當(dāng)前作用域內(nèi)的局部變量和其值組成的字典
def?f(): ????print('before?define?a?') ????print(locals())?#作用域內(nèi)無(wú)變量 ????a?=?1 ????print('after?define?a') ????print(locals())?#作用域內(nèi)有一個(gè)a變量,值為1 ?f?f() before?define?a? {}? after?define?a {'a':?1}
input:讀取用戶輸入值
s?=?input('please?input?your?name:') please?input?your?name:Ain ?s 'Ain'
open:使用指定的模式和編碼打開文件,返回文件讀寫對(duì)象
#?t為文本讀寫,b為二進(jìn)制讀寫 ?a?=?open('test.txt','rt') ?a.read() 'some?text' ?a.close()
eval:執(zhí)行動(dòng)態(tài)表達(dá)式求值
eval('1+2+3+4') 10
除了上述舉例的函數(shù)之外,內(nèi)置函數(shù)按分類還可分為:
1、數(shù)學(xué)運(yùn)算(7個(gè))
2、類型轉(zhuǎn)換(24個(gè))
3、序列操作(8個(gè))
4、對(duì)象操作(7個(gè))
5、反射操作(8個(gè))
6、變量操作(2個(gè))
7、交互操作(2個(gè))
8、文件操作(1個(gè))
9、編譯操作(4個(gè))
10、裝飾器(3個(gè))
python 的函數(shù)參數(shù)類型分為4種:
1.位置參數(shù):調(diào)用函數(shù)時(shí)根據(jù)函數(shù)定義的參數(shù)位置來(lái)傳遞參數(shù),位置參數(shù)也可以叫做必要參數(shù),函數(shù)調(diào)用時(shí)必須要傳的參數(shù)。
當(dāng)參數(shù)滿足函數(shù)必要參數(shù)傳參的條件,函數(shù)能夠正常執(zhí)行:
add(1,2) #兩個(gè)參數(shù)的順序必須一一對(duì)應(yīng),且少一個(gè)參數(shù)都不可以
當(dāng)我們運(yùn)行上面的程序,輸出:
當(dāng)函數(shù)需要兩個(gè)必要參數(shù),但是調(diào)用函數(shù)只給了一個(gè)參數(shù)時(shí),程序會(huì)拋出異常
add(1)
當(dāng)我們運(yùn)行上面的程序,輸出:
當(dāng)函數(shù)需要兩個(gè)必要參數(shù),但是調(diào)用函數(shù)只給了三個(gè)參數(shù)時(shí),程序會(huì)拋出異常
add(1,2,3)
當(dāng)我們運(yùn)行上面的程序,輸出
2.關(guān)鍵字參數(shù):用于函數(shù)調(diào)用,通過(guò)“鍵-值”形式加以指定。可以讓函數(shù)更加清晰、容易使用,同時(shí)也清除了參數(shù)的順序需求。
add(1,2) # 這種方式傳參,必須按順序傳參:x對(duì)應(yīng)1,y對(duì)應(yīng):2
add(y=2,x=1) #以關(guān)健字方式傳入?yún)?shù)(可以不按順序)
正確的調(diào)用方式
add(x=1, y=2)
add(y=2, x=1)
add(1, y=2)
以上調(diào)用方式都是允許的,能夠正常執(zhí)行
錯(cuò)誤的調(diào)用方式
add(x=1, 2)
add(y=2, 1)
以上調(diào)用都會(huì)拋出SyntaxError 異常
上面例子可以看出:有位置參數(shù)時(shí),位置參數(shù)必須在關(guān)鍵字參數(shù)的前面,但關(guān)鍵字參數(shù)之間不存在先后順序的
3.默認(rèn)參數(shù):用于定義函數(shù),為參數(shù)提供默認(rèn)值,調(diào)用函數(shù)時(shí)可傳可不傳該默認(rèn)參數(shù)的值,所有位置參數(shù)必須出現(xiàn)在默認(rèn)參數(shù)前,包括函數(shù)定義和調(diào)用,有多個(gè)默認(rèn)參數(shù)時(shí),調(diào)用的時(shí)候,既可以按順序提供默認(rèn)參數(shù),也可以不按順序提供部分默認(rèn)參數(shù)。當(dāng)不按順序提供部分默認(rèn)參數(shù)時(shí),需要把參數(shù)名寫上
默認(rèn)參數(shù)的函數(shù)定義
上面示例第一個(gè)是正確的定義位置參數(shù)的方式,第二個(gè)是錯(cuò)誤的,因?yàn)槲恢脜?shù)在前,默認(rèn)參數(shù)在后
def add1(x=1,y) 的定義會(huì)拋出如下異常
默認(rèn)參數(shù)的函數(shù)調(diào)用
注意:定義默認(rèn)參數(shù)默認(rèn)參數(shù)最好不要定義為可變對(duì)象,容易掉坑
不可變對(duì)象:該對(duì)象所指向的內(nèi)存中的值不能被改變,int,string,float,tuple
可變對(duì)象,該對(duì)象所指向的內(nèi)存中的值可以被改變,dict,list
這里只要理解一下這個(gè)概念就行或者自行百度,后續(xù)會(huì)寫相關(guān)的專題文章講解
舉一個(gè)簡(jiǎn)單示例
4.可變參數(shù)區(qū)別:定義函數(shù)時(shí),有時(shí)候我們不確定調(diào)用的時(shí)候會(huì)多少個(gè)參數(shù),j就可以使用可變參數(shù)
可變參數(shù)主要有兩類:
*args: (positional argument) 允許任意數(shù)量的可選位置參數(shù)(參數(shù)),將被分配給一個(gè)元組, 參數(shù)名前帶*,args只是約定俗成的變量名,可以替換其他名稱
**kwargs:(keyword argument) 允許任意數(shù)量的可選關(guān)鍵字參數(shù),,將被分配給一個(gè)字典,參數(shù)名前帶**,kwargs只是約定俗成的變量名,可以替換其他名稱
*args 的用法
args 是用來(lái)傳遞一個(gè)非鍵值對(duì)的可變數(shù)量的參數(shù)列表給函數(shù)
語(yǔ)法是使用 符號(hào)的數(shù)量可變的參數(shù); 按照慣例,通常是使用arg這個(gè)單詞,args相當(dāng)于一個(gè)變量名,可以自己定義的
在上面的程序中,我們使用* args作為一個(gè)可變長(zhǎng)度參數(shù)列表傳遞給add()函數(shù)。 在函數(shù)中,我們有一個(gè)循環(huán)實(shí)現(xiàn)傳遞的參數(shù)計(jì)算和輸出結(jié)果。
還可以直接傳遞列表或者數(shù)組的方式傳遞參數(shù),以數(shù)組或者列表方式傳遞參數(shù)名前面加(*) 號(hào)
理解* * kwargs
**kwargs 允許你將不定長(zhǎng)度的鍵值對(duì), 作為參數(shù)傳遞給函數(shù),這些關(guān)鍵字參數(shù)在函數(shù)內(nèi)部自動(dòng)組裝為一個(gè)dict
下篇詳細(xì)講解 *args, **kwargs 的參數(shù)傳遞和使用敬請(qǐng)關(guān)注
(1)Lambda函數(shù)
用于創(chuàng)建匿名函數(shù),即沒(méi)有名稱的函數(shù)。它只是一個(gè)表達(dá)式,函數(shù)體比def簡(jiǎn)單很多。當(dāng)我們需要?jiǎng)?chuàng)建一個(gè)函數(shù)來(lái)執(zhí)行單個(gè)操作并且可以在一行中編寫時(shí),就可以用到匿名函數(shù)了。
Lamdba的主體是一個(gè)表達(dá)式,而不是一個(gè)代碼塊。僅僅能在lambda表達(dá)式中封裝有限的邏輯進(jìn)去。
利用Lamdba函數(shù),往往可以將代碼簡(jiǎn)化許多。
(2)Map函數(shù)
會(huì)將一個(gè)函數(shù)映射到一個(gè)輸入列表的所有元素上,比如我們先創(chuàng)建了一個(gè)函數(shù)來(lái)返回一個(gè)大寫的輸入單詞,然后將此函數(shù)應(yīng)有到列表colors中的所有元素。
我們還可以使用匿名函數(shù)lamdba來(lái)配合map函數(shù),這樣可以更加精簡(jiǎn)。
(3)Reduce函數(shù)
當(dāng)需要對(duì)一個(gè)列表進(jìn)行一些計(jì)算并返回結(jié)果時(shí),reduce()是個(gè)非常有用的函數(shù)。舉個(gè)例子,當(dāng)需要計(jì)算一個(gè)整數(shù)列表所有元素的乘積時(shí),即可使用reduce函數(shù)實(shí)現(xiàn)。
它與函數(shù)的最大的區(qū)別就是,reduce()里的映射函數(shù)(function)接收兩個(gè)參數(shù),而map接收一個(gè)參數(shù)。
(4)enumerate函數(shù)
用于將一個(gè)可遍歷的數(shù)據(jù)對(duì)象(如列表、元組或字符串)組合為一個(gè)索引序列,同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo),一般用在for循環(huán)當(dāng)中。
它的兩個(gè)參數(shù),一個(gè)是序列、迭代器或其他支持迭代對(duì)象;另一個(gè)是下標(biāo)起始位置,默認(rèn)情況從0開始,也可以自定義計(jì)數(shù)器的起始編號(hào)。
(5)Zip函數(shù)
用于將可迭代的對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的列表
當(dāng)我們使用zip()函數(shù)時(shí),如果各個(gè)迭代器的元素個(gè)數(shù)不一致,則返回列表長(zhǎng)度與最短的對(duì)象相同。
分享文章:python函數(shù)分類 python的分類算法有哪些
本文路徑:http://chinadenli.net/article28/dojidjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站導(dǎo)航、網(wǎng)站維護(hù)、品牌網(wǎng)站建設(shè)、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)