中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中怎么實現遞歸調用

發布時間:2021-08-08 18:57:19 來源:億速云 閱讀:327 作者:Leah 欄目:大數據

這期內容當中小編將會給大家帶來有關Python中怎么實現遞歸調用,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

Python中怎么實現遞歸調用

當函數返回時,要從調用棧的棧頂取得返回地址,恢復現場,彈出棧幀,按地址返回

Python中怎么實現遞歸調用


   
Python中怎么實現遞歸調用

   
 

Python中的遞歸深度限制

調用棧也是要占據內存的,所以也不可能設置過大,對調用棧大小Python是有限制的(開始默認1000)

在調試遞歸算法的時候,經常會出現這樣的錯誤:

RecursionError: maximum recursion depth exceeded while calling a Python object

導致這個錯誤的原因就是遞歸的層次太多,系統調用棧的大小有限

導致這個錯誤的原因有兩個情況:

情況一:沒有設置基本結束條件

Python中怎么實現遞歸調用

Traceback (most recent call last):  File "c:\Users\hy\Desktop\daily\daily.py.py", line 15, in <module>    tell_story()  File "c:\Users\hy\Desktop\daily\daily.py.py", line 12, in tell_story    tell_story()  File "c:\Users\hy\Desktop\daily\daily.py.py", line 12, in tell_story    tell_story()  File "c:\Users\hy\Desktop\daily\daily.py.py", line 12, in tell_story    tell_story()  [Previous line repeated 993 more times]  File "c:\Users\hy\Desktop\daily\daily.py.py", line 11, in tell_story    print("“從前有座山,山上有個廟,廟里有個老和尚,他說:”")RecursionError: maximum recursion depth exceeded while calling a Python object
     



06

情況二:程序本身沒錯,但是程序向基本結束條件演進的速度太慢了


例如:調用棧深度1000, 但此刻數列求和函數計算2000個數,那就不行了


06


   
Python中怎么實現遞歸調用

   
 

調整調用棧深度

在python中利用sys內置模塊可以調整調用棧的深度

  • sys.getrecursionlimit( ) 獲取調用棧深度

  • sys.setrecursionlimit(n) 修改調用棧深度

Python中怎么實現遞歸調用

上述就是小編為大家分享的Python中怎么實現遞歸調用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宣恩县| 平顶山市| 大洼县| 定州市| 双桥区| 南陵县| 寻乌县| 湖州市| 伊吾县| 济宁市| 常德市| 恭城| 新乡市| 江油市| 和顺县| 井冈山市| 苗栗县| 娱乐| 营口市| 宁化县| 台前县| 仙桃市| 龙岩市| 敦化市| 晋江市| 四平市| 斗六市| 忻城县| 铁岭县| 泽普县| 常德市| 巨鹿县| 湾仔区| 邵阳县| 民乐县| 望城县| 南皮县| 陆河县| 海淀区| 临海市| 纳雍县|