定義函數(shù)的時(shí)候,還可以有默認(rèn)參數(shù),默認(rèn)參數(shù)的意思是當(dāng)這個(gè)參數(shù)沒有傳遞的時(shí)候,參數(shù)就使用定義時(shí)的默認(rèn)值。
例如Python自帶的 int() 函數(shù),其實(shí)就有兩個(gè)參數(shù),我們既可以傳一個(gè)參數(shù),又可以傳兩個(gè)參數(shù):
int('123') # ==> 123 int('123', 8) # ==> 83
int()函數(shù)的第二個(gè)參數(shù)是轉(zhuǎn)換進(jìn)制base,如果不傳,默認(rèn)是十進(jìn)制 (base=10),如果傳了,就用傳入的參數(shù)。
可見,函數(shù)的默認(rèn)參數(shù)的作用是簡(jiǎn)化調(diào)用,你只需要把必須的參數(shù)傳進(jìn)去。但是在需要的時(shí)候,又可以傳入額外的參數(shù)來覆蓋默認(rèn)參數(shù)值。
我們來定義一個(gè)計(jì)算 x 的N次方的函數(shù):
def power(x, n): s = 1 while n > 0: n = n - 1 s = s * x return s
假設(shè)計(jì)算平方的次數(shù)最多,我們就可以把 n 的默認(rèn)值設(shè)定為 2:
def power(x, n=2): s = 1 while n > 0: n = n - 1 s = s * x return s
這樣一來,計(jì)算平方就不需要傳入兩個(gè)參數(shù)了:
power(5) # ==> 25
另外需要注意的是,由于函數(shù)的參數(shù)按從左到右的順序匹配,所以默認(rèn)參數(shù)只能定義在必需參數(shù)的后面,否則將會(huì)出現(xiàn)錯(cuò)誤。
# 錯(cuò)誤的定義 def power(n=2, x): s = 1 while n > 0: n = n - 1 s = s * x return s
請(qǐng)定義一個(gè) greet() 函數(shù),它包含一個(gè)默認(rèn)參數(shù),如果沒有傳入?yún)?shù),打印 Hello, world.
,如果傳入?yún)?shù),打印Hello, 傳入的參數(shù)內(nèi)容.
參考答案:
def greet(name='world'): print ('Hello, ' + name + '.') greet() greet('Alice')
請(qǐng)驗(yàn)證,完成請(qǐng)求
由于請(qǐng)求次數(shù)過多,請(qǐng)先驗(yàn)證,完成再次請(qǐng)求
打開微信掃碼自動(dòng)綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書簽
舉報(bào)