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

極客小將

您現在的位置是:首頁 » 原創課程 » Python

課程內容

Python入門課程NO61課 遞歸函數

極客小將2020-08-28-
所謂的遞歸函數,是指自己調用自己的函數。這里的調用不一定是直接調用,也可以是間接地調用。舉例說明:但這樣自身不斷的調用自身會陷入死循環當中,無法結束,因此python會拋出一個錯誤,指示該遞歸函數已超出了最大遞歸深度。因此遞歸函數必須能夠正常終止在設計遞歸函數時

所謂的遞歸函數,是指自己調用自己的函數。這里的調用不一定是直接調用,也可以是間接地調用。舉例說明:

但這樣自身不斷的調用自身會陷入死循環當中,無法結束,因此python會拋出一個錯誤,指示該遞歸函數已超出了最大遞歸深度。因此

遞歸函數必須能夠正常終止

在設計遞歸函數時,必須定義一個退出邊界,否則函數會不斷地遞歸執行,一旦超出Python語言所支持的遞歸深度,那么就會拋出RecursionError的錯誤異常。我們可以在函數體中使用控制語句加一段控制邏輯,當遞歸函數在條件不滿足時就終止遞歸。我們將上面的遞歸函數進行修改來輸出1-10之間的整數,如下:

遞歸函數高級用法:返回值

遞歸函數較非遞歸函數,會更難理解,在熟練掌握了遞歸函數的用法以后,可以寫出更加簡潔的代碼。比如計算幾個數字的和:

接下來我們進行講解:

代碼最外層是一個三元運算結構:return 0 if not numbers。這段代碼表示,如果參數numbers為空,就返回0。

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

遞歸函數的劣勢:

在定義遞歸函數的時候必須設計函數的邊界條件,一旦超出邊界,就終止遞歸,否則遞歸函數會不斷地執行,不斷地消耗系統資源,直至被系統kill。


預約試聽課

已有385人預約都是免費的,你也試試吧...

主站蜘蛛池模板: 镇宁| 渭源县| 乳源| 抚顺县| 运城市| 石城县| 株洲县| 邹平县| 永清县| 鄂托克旗| 铅山县| 平顶山市| 保康县| 灌阳县| 兰西县| 碌曲县| 奉新县| 余姚市| 美姑县| 柳州市| 搜索| 龙胜| 汽车| 凌源市| 苗栗县| 齐齐哈尔市| 安吉县| 周宁县| 茂名市| 长沙市| 衡山县| 化州市| 定结县| 如东县| 贵定县| 久治县| 泰来县| 塘沽区| 黄骅市| 阿拉尔市| 浦县|