国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Python學(xué)習(xí)筆記05_函數(shù)

2019-11-14 11:30:17
字體:
供稿:網(wǎng)友

調(diào)用函數(shù)

abs(), max(), int(), float(), str(), bool()

定義函數(shù)

使用def語句,依次寫出函數(shù)名、括號、括號中的參數(shù)和冒號:,然后在縮進(jìn)塊編寫函數(shù)體。函數(shù)體內(nèi)部語句執(zhí)行到return時,執(zhí)行完畢并將結(jié)果返回,如果沒有return語句,也會返回結(jié)果None,return None可以簡寫為return。空函數(shù),可以用來作為占位符,比如現(xiàn)在還沒想好怎么寫函數(shù)的代碼,先放一個pass。 if exp: pass 數(shù)據(jù)類型檢查函數(shù),isinstance()函數(shù)返回多個值,其實是返回一個tuple,在語法上,返回一個tuple可以省略括號,而多個變量可以同時接收一個tuple,按位置賦給對應(yīng)的值。

函數(shù)的參數(shù)

位置參數(shù),如power(x,n),這兩個參數(shù)都是位置參數(shù),調(diào)用函數(shù)時,傳入的兩個值按照位置順序依次賦給參數(shù)x和n。

默認(rèn)參數(shù),調(diào)用power(5)時,相當(dāng)于調(diào)用power(5,2)。設(shè)置默認(rèn)參數(shù)時,必選參數(shù)在前,默認(rèn)參數(shù)在后。當(dāng)函數(shù)有多個參數(shù)時,把變化大的參數(shù)放前面,變化小的參數(shù)放后面,變化小的參數(shù)就可以作為默認(rèn)參數(shù)。默認(rèn)參數(shù)必須指向不變對象

def power(x,n=2): passdef add_end(L=[]): L.append('END') return L # 每次調(diào)用該函數(shù),如果改變了L的內(nèi)容,下次調(diào)用時,默認(rèn)參數(shù)的內(nèi)容變了,不再是函數(shù)定義時的[]。def add_end(L=None): if L is None: L = [] L.append('END') return L # 修改為用None這個不變對象

可變參數(shù),允許傳入0個或任意個參數(shù),在函數(shù)調(diào)用時自動組裝為一個tuple。

def calc(numbers): sum = 0 for n in numbers: sum = sum + n * n return sum # 定義list或tuple參數(shù),把參數(shù)a,b,c……作為一個list或tuple傳進(jìn)來def calc(*numbers): sum = 0 for n in numbers: sum = sum + n * n return sum # 定義可變參數(shù),在參數(shù)前面加一個*號,在函數(shù)內(nèi)部,參數(shù)numbers接收到一個tuple # 如果已經(jīng)有一個list或tuple,如nums=[1,2],可以用calc(*nums) # *nums表示把nums這個list的所有元素作為可變參數(shù)傳進(jìn)去

關(guān)鍵字參數(shù),在參數(shù)前面加**,允許傳入0個或任意個含參數(shù)名的參數(shù),在函數(shù)內(nèi)部自動組裝為一個dict。

<<< def person(name,age,**kw): 命名關(guān)鍵字參數(shù),命名關(guān)鍵字參數(shù)調(diào)用必須傳入?yún)?shù)名,這和位置參數(shù)不同。命名關(guān)鍵字參數(shù)可以有缺省值。

def person(name,age,*,city,job): print(name,age,city,job) # 命名關(guān)鍵字參數(shù)需要一個特殊分隔符*,*后面的參數(shù)被視為命名關(guān)鍵字參數(shù)。def person(name,age,*args,city,job): print(name,age,args,city,job) # 如果函數(shù)定義中已經(jīng)有了一個可變參數(shù),后面跟著的命名關(guān)鍵字參數(shù)不需要*了。

參數(shù)組合

參數(shù)定義的順序必須是:必選參數(shù)、默認(rèn)參數(shù)、可變參數(shù)、命名關(guān)鍵字參數(shù)和關(guān)鍵字參數(shù)。

小結(jié)

默認(rèn)參數(shù)一定要用不可變對象,如果是可變對象,程序運行時會有邏輯錯誤。*args是可變參數(shù),args接收的是一個tuple。**kw是關(guān)鍵字參數(shù),kw接收的是一個dict。可變參數(shù)既可以直接傳入:func(1,2,3),又可以先組裝list或tuple,再通過*args傳入:func(*(1,2,3))。關(guān)鍵字參數(shù)既可以直接傳入func(a=1,b=2),又可以先組裝dict,再通過**kw傳入:func(**{'a':1,'b':2})命名關(guān)鍵字參數(shù)是為了限制調(diào)用者可以傳入的參數(shù)名,同時可以提供默認(rèn)值。定義命名的關(guān)鍵字參數(shù)在沒有可變參數(shù)的情況下不要忘了寫分隔符*,否則定義的將是位置參數(shù)。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 乐都县| 珠海市| 蒙阴县| 宁津县| 阜阳市| 汝州市| 玉山县| 汽车| 金湖县| 神农架林区| 荔浦县| 新河县| 浦东新区| 宁化县| 辛集市| 汉中市| 兴山县| 东港市| 司法| 元朗区| 察隅县| 昌图县| 江西省| 永胜县| 荆州市| 阿勒泰市| 永定县| 龙南县| 虞城县| 仁化县| 宁都县| 海城市| 缙云县| 和龙市| 衡阳县| 广西| 武邑县| 惠来县| 合阳县| 时尚| 巩留县|