国产日韩欧美一区二区三区综合,日本黄色免费在线,国产精品麻豆欧美日韩ww,色综合狠狠操

極客小將

您現(xiàn)在的位置是:首頁(yè) » 原創(chuàng)課程 » Python

課程內(nèi)容

Python入門(mén)課程N(yùn)O61課 遞歸函數(shù)

極客小將2020-08-28-
所謂的遞歸函數(shù),是指自己調(diào)用自己的函數(shù)。這里的調(diào)用不一定是直接調(diào)用,也可以是間接地調(diào)用。舉例說(shuō)明:但這樣自身不斷的調(diào)用自身會(huì)陷入死循環(huán)當(dāng)中,無(wú)法結(jié)束,因此python會(huì)拋出一個(gè)錯(cuò)誤,指示該遞歸函數(shù)已超出了最大遞歸深度。因此遞歸函數(shù)必須能夠正常終止在設(shè)計(jì)遞歸函數(shù)時(shí)

所謂的遞歸函數(shù),是指自己調(diào)用自己的函數(shù)。這里的調(diào)用不一定是直接調(diào)用,也可以是間接地調(diào)用。舉例說(shuō)明:

但這樣自身不斷的調(diào)用自身會(huì)陷入死循環(huán)當(dāng)中,無(wú)法結(jié)束,因此python會(huì)拋出一個(gè)錯(cuò)誤,指示該遞歸函數(shù)已超出了最大遞歸深度。因此

遞歸函數(shù)必須能夠正常終止

在設(shè)計(jì)遞歸函數(shù)時(shí),必須定義一個(gè)退出邊界,否則函數(shù)會(huì)不斷地遞歸執(zhí)行,一旦超出Python語(yǔ)言所支持的遞歸深度,那么就會(huì)拋出RecursionError的錯(cuò)誤異常。我們可以在函數(shù)體中使用控制語(yǔ)句加一段控制邏輯,當(dāng)遞歸函數(shù)在條件不滿(mǎn)足時(shí)就終止遞歸。我們將上面的遞歸函數(shù)進(jìn)行修改來(lái)輸出1-10之間的整數(shù),如下:

遞歸函數(shù)高級(jí)用法:返回值

遞歸函數(shù)較非遞歸函數(shù),會(huì)更難理解,在熟練掌握了遞歸函數(shù)的用法以后,可以寫(xiě)出更加簡(jiǎn)潔的代碼。比如計(jì)算幾個(gè)數(shù)字的和:

接下來(lái)我們進(jìn)行講解:

代碼最外層是一個(gè)三元運(yùn)算結(jié)構(gòu):return 0 if not numbers。這段代碼表示,如果參數(shù)numbers為空,就返回0。

接下來(lái)是調(diào)用自己else numbers[-1]+qiuhe(numbers[0:len(numbers)-1]),列表numbers非空,那么就先取出列表最后一個(gè)元素:numbers[-1]然后對(duì)列表進(jìn)行切片,再將切片后的列表作為參數(shù)傳遞給qiuhe函數(shù):同學(xué)們注意這個(gè)切片的語(yǔ)法,每次切片都將尾部的元素排除。最后將取出的尾部元素,與遞歸函數(shù)的返回值進(jìn)行相加:numbers[-1]+accumulate(numbers[0:len(numbers)-1])

遞歸函數(shù)的劣勢(shì):

在定義遞歸函數(shù)的時(shí)候必須設(shè)計(jì)函數(shù)的邊界條件,一旦超出邊界,就終止遞歸,否則遞歸函數(shù)會(huì)不斷地執(zhí)行,不斷地消耗系統(tǒng)資源,直至被系統(tǒng)kill。


預(yù)約試聽(tīng)課

已有385人預(yù)約都是免費(fèi)的,你也試試吧...

主站蜘蛛池模板: 张家界市| 泰来县| 察雅县| 南靖县| 和田县| 怀来县| 湘乡市| 孟州市| 洛川县| 铁岭市| 博爱县| 法库县| 延寿县| 高雄县| 金堂县| 仪征市| 区。| 洞口县| 马公市| 南召县| 彭水| 嵊州市| 镇康县| 苏尼特左旗| 固阳县| 长垣县| 东方市| 德令哈市| 双鸭山市| 南城县| 清徐县| 汝阳县| 岑溪市| 林西县| 阿城市| 台山市| 明溪县| 曲水县| 衡山县| 垫江县| 体育|