自學(xué)整理記錄,大神見(jiàn)笑
函數(shù)參數(shù)和返回值的作用
- 如果函數(shù)內(nèi)部處理的數(shù)據(jù)不確定,就可以添加函數(shù)的參數(shù)
- 如果希望函數(shù)執(zhí)行完成后,向外界匯報(bào),就增加返回值
函數(shù)的返回值進(jìn)階
- 如果需要返回多個(gè)數(shù)據(jù),可用元組返回
- 返回多個(gè)數(shù)據(jù)時(shí),可不用寫定義元組的小括號(hào)
- 如果返回元組,同時(shí)希望可以單獨(dú)處理元組中的元素,可以使用多個(gè)變量,一次性接收函數(shù)的返回結(jié)果,注意:變量的個(gè)數(shù)要和元組中元素個(gè)數(shù)相同
def sum_sum():
?return "1", "2", "3"
one, two, three = sum_sum()
- 由上一條得出一種交換變量值的方法
a,b = b,a
- 注:等號(hào)后面其實(shí)是元組,只是元組的小括號(hào)可以省略
函數(shù)的參數(shù)進(jìn)階
- 無(wú)論傳遞的參數(shù)是可變還是不可變,只要針對(duì)參數(shù)使用賦值語(yǔ)句,會(huì)在函數(shù)內(nèi)部修改局部變量的引用,不會(huì)影響到外部變量的引用
- 如果傳遞的參數(shù)是可變類型,在函數(shù)內(nèi)部,使用方法修改了數(shù)據(jù)的內(nèi)容,會(huì)影響到外部的數(shù)據(jù)
- 列表使用+=時(shí),會(huì)調(diào)用extend方法
缺省參數(shù)
- 定義函數(shù)時(shí),可以給某個(gè)參數(shù)指定默認(rèn)值,具有默認(rèn)值的參數(shù)就叫做缺省參數(shù)
- 調(diào)用函數(shù)時(shí),如果沒(méi)有傳入缺省參數(shù)的值,則在函數(shù)內(nèi)部使用定義函數(shù)時(shí)的默認(rèn)值
- 技巧:將常見(jiàn)的值設(shè)置為參數(shù)的缺省值,從而簡(jiǎn)化函數(shù)的調(diào)用
指定函數(shù)的缺省值
- 需要在函數(shù)的形參處指定最常見(jiàn)的值作為默認(rèn)值
- 注意:缺省參數(shù)必須寫在參數(shù)列表的末尾
- 注意:如果有多個(gè)缺省參數(shù),需要傳參時(shí),需要寫出參數(shù)名,這樣解釋器才能確定對(duì)應(yīng)關(guān)系
多值參數(shù)
- 用于參數(shù)個(gè)數(shù)不確定
- 參數(shù)名前增加一個(gè)*可以接收元組;參數(shù)名前增加兩個(gè)*可以接收字典
- 元組和字典拆包,即在傳遞的時(shí)候元組前加一個(gè)*,字典前加兩個(gè)*
函數(shù)的遞歸
- 函數(shù)內(nèi)部自己調(diào)用自己
- 函數(shù)內(nèi)部代碼相同,只是針對(duì)參數(shù)不同,會(huì)有不同的處理結(jié)果
- 當(dāng)參數(shù)滿足一個(gè)條件時(shí)不再執(zhí)行,即遞歸的出口,很重要,否則死循環(huán),會(huì)報(bào)錯(cuò)ResouceError