首頁  >  文章  >  後端開發  >  在python裡遞歸最多達到多少次

在python裡遞歸最多達到多少次

高洛峰
高洛峰原創
2016-10-20 09:39:401560瀏覽

在python裡遞歸最多達到幾次?因為在跑程序的時候,次數有時多有時少,以前沒有想過這個問題。那就自己動手在驗證驗證, 程式碼如下:

def recursion(n):
    if(n <= 0):
        return
    print n
    recursion(n - 1)
  
if __name__ == "__main__":
    recursion(1000)

當在我自己的機器運行以上程式碼時,發現最多能印到998,然後就會拋出 “RuntimeError: maximum recursion depth exceeded” 的錯誤了。 嘿,還真有限制。但轉念一想,python不會這麼弱。經過一番查找,發現這是python專門設定的一種機制用來防止無限遞歸造成Python溢位崩潰, 最大遞迴次數是可以重新調整的。 (http://docs.python.org/2/library/sys.html#sys.setrecursionlimit),修改程式碼如下:

import sys
sys.setrecursionlimit(1500)  # set the maximum depth as 1500
  
def recursion(n):
    if(n <= 0):
        return
    print n
    recursion(n - 1)
  
if __name__ == "__main__":
    recursion(1200)


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn