python如何查看內(nèi)置函數(shù)?
我不當(dāng)我頻繁調(diào)用時(shí),我不知道當(dāng)前版本的python中有哪些內(nèi)置函數(shù),所以我可以使用以下指令檢查它們:importsysprintdir([__builtin__])
python如何定義函數(shù)?
首先,定義一個(gè)最簡(jiǎn)單的函數(shù)
Def用于函數(shù)定義,必須有函數(shù)名和函數(shù)體。下圖中,函數(shù)名為sayHello,函數(shù)體為打印語(yǔ)句。函數(shù)只有被調(diào)用才會(huì)被執(zhí)行,函數(shù)名以圓括號(hào)的形式調(diào)用,即sayHello()。
二、函數(shù)的參數(shù)
1.位置參數(shù)
Position參數(shù)是必需的,如果在調(diào)用函數(shù)時(shí)沒(méi)有傳遞,將會(huì)給出錯(cuò)誤。
我們寫一個(gè)簡(jiǎn)單的函數(shù)來(lái)實(shí)現(xiàn)計(jì)算乘法的功能。下圖中的a和b是位置參數(shù)。
a和b稱為形參,即形式參數(shù)。調(diào)用函數(shù)calc時(shí),傳遞的7和8稱為實(shí)參,即實(shí)際參數(shù)。
我們可以看到,在傳遞參數(shù)時(shí),7傳遞給A,8傳遞給b,也就是說(shuō),傳遞參數(shù)的順序不能錯(cuò)。然后,當(dāng)參數(shù)很多的時(shí)候,很難準(zhǔn)確記住每個(gè)參數(shù)的位置,很容易出錯(cuò)。您可以以形式參數(shù)和真實(shí)參數(shù)的形式傳遞參數(shù)。
例如,操作數(shù)據(jù)庫(kù)的函數(shù)。參數(shù)傳遞順序不對(duì),采用端口3306,非常適合多參數(shù)函數(shù)。
d:打印(連接數(shù)據(jù)庫(kù):%s,主機(jī):%s,端口:%s%(數(shù)據(jù)庫(kù),主機(jī),端口))打印(%s,其中用戶名%s和密碼%s%(SQL,用戶名,密碼))op_MySQL(SQLselect*from用戶,主機(jī)192.158.11.1,usernamesdfss,passwordsdf123,dbtest_data,端口3306)按如下運(yùn)行:
2.默認(rèn)值參數(shù)
不需要默認(rèn)值參數(shù)。如果留空,將使用默認(rèn)值。
例子:寫一個(gè)函數(shù),實(shí)現(xiàn)讀寫文件的功能。
#函數(shù)來(lái)操作文件。如果傳遞了content參數(shù),相應(yīng)的內(nèi)容將被寫入文件。讀取文件的原始內(nèi)容,而不傳輸內(nèi)容。defop_file(file_name,cont:FOpen(file_name,a,encodingutf-8)(0)IFcont:#Notempty表示寫f.write(cont:字符串if(。)1:離開了s(。)[0]#十進(jìn)制左右s拆分(。)[1]#Decimalrightif()和():返回tru:返回tru:返回Fals:返回FalseNum輸入(請(qǐng)輸入:)resis_float(num)print(res)3.參數(shù)組。
參數(shù)組的參數(shù)用"*args"。參數(shù)組特性:(1)不需要參數(shù);(2)參數(shù)個(gè)數(shù)沒(méi)有限制;(3)將傳遞的參數(shù)放入args參數(shù)中,沒(méi)有任何格式。
如果函數(shù)定義為defaaa(a,*args),那么a是必需的參數(shù),而*args不是必需的。
4.關(guān)鍵字參數(shù)
關(guān)鍵字參數(shù)用"**kwargs"。特點(diǎn):(1)不需要參數(shù);(2)參數(shù)個(gè)數(shù)沒(méi)有限制;(3)傳遞的參數(shù)必須是字典格式。
同樣,如果defaaa(time,**kwargs),則必須傳遞時(shí)間參數(shù)。其中time20180912是第一個(gè)參數(shù)time的值,所以沒(méi)有輸出kwargs的時(shí)間。
三、局部變量和全局變量。
1.局部變量
函數(shù)中定義的變量都是局部變量,只能在函數(shù)中使用,不能在函數(shù)外使用。
例如,在第二個(gè)練習(xí)中,left和right是局部變量,以確定它們是否是小數(shù)的函數(shù)。
2.全局變量
全局變量是公共變量,可以被所有人使用。一般不建議使用全局變量,因?yàn)樗鼈冇幸韵聝蓚€(gè)缺點(diǎn):(1)不安全,因?yàn)槊總€(gè)人都可以更改它們;(2)會(huì)一直占用內(nèi)存。
要修改一個(gè)全局變量,需要先聲明它,并用global聲明。
下圖中,name是一個(gè)全局變量,需要在修改前聲明:全局名稱。
第四,內(nèi)置功能
內(nèi)置函數(shù)是python自帶的一些函數(shù),有很多,比如:
動(dòng)詞(verb的縮寫)遞歸
遞歸意味著函數(shù)調(diào)用自己。
建議少用遞歸,因?yàn)檫f歸效率低,最多遞歸999次。遞歸次數(shù)的上限可以通過(guò)下面的函數(shù)直觀地看到。
第六,函數(shù)的返回值
回歸之前已經(jīng)簡(jiǎn)單介紹過(guò)了。return有兩個(gè)作用:(1)調(diào)用函數(shù)后返回結(jié)果;(2)當(dāng)函數(shù)中遇到return時(shí),立即結(jié)束。
有些函數(shù)有多個(gè)返回值。如果函數(shù)返回多個(gè)值,它會(huì)將這些值放入一個(gè)元組中。此外,它還可以接收多個(gè)值。
示例:
七、匿名功能
匿名功能的作用很簡(jiǎn)單,只用一次。匿名函數(shù)定義如下。
用lambda定義一個(gè)匿名函數(shù),返回值在冒號(hào)前面,函數(shù)體在后面,這是函數(shù)的處理邏輯。
也就是輸入?yún)?shù)是x,然后執(zhí)行x1返回x的值。
——河南新華。