您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Python中遞歸是什么”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Python中遞歸是什么”這篇文章吧。
概念: 函數直接或者間接調用自身就是 遞歸 遞歸需要有邊界條件。遞歸前進段。遞歸返回段 遞歸一定要有邊界條件(否則會出現無限遞歸前進) 當邊界條件不滿足的時候,遞歸前進 當邊界條件滿足的時候,遞歸返回 遞歸要求: 遞歸一定要有退出條件,遞歸調用一定要執行到這個退出條件。沒有退出條件的遞歸調用,就是無限調用 遞歸調用的深度不宜過深 Python對遞歸調用的深度做了限制,以保護解析器 超過遞歸深度限制,拋出RecursionError:maxinum recursion depth exceeded超出最大深度、 sys.getrecursionlimit()查看最大深度 邊界值:不是終止遞歸的返回值,而是作為遞歸運算最后一次運算的時調用的值。 當觸發邊界時,也就意味調用邊界值進入遞歸運算中,計算出結果彈出, 從而中斷遞歸。 1.循環稍微復雜一些,但是只要不是死循環,可以多次迭代直至算出結果 2.fib函數代碼極簡易懂,但是只能獲取到最外層的函數調用,內部遞歸結果都是中間結果.而且給定一個n都要進行近2n次遞歸,深度越深,效率越低。為了獲取斐波那契數列需要外面在套一個n次的循環,效率就更低了 3.遞歸還有深度限制,如果遞歸復雜,函數反復壓棧,棧內存很快就溢出了 1.間接遞歸,是通過別的函數調用了函數自身 2.但是,如果構成了循環遞歸調用時非常危險的,但是往往這種情況在代碼的情況下,還是可能發生這種調用。要用代碼規范來避免這種遞歸調用的發生
以上是“Python中遞歸是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。