關於Python中遞迴次數
阿新 • • 發佈:2019-01-24
在python裡遞迴最多達到多少次?因為在跑程式的時候,次數有時多有時少,以前沒有想過這個問題。那就自己動手在驗證驗證, 程式碼如下:
1 2 3 4 5 6 7 8 |
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),修改程式碼如下:
1 2 3 4 5 6 7 8 9 10 11 |
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 )
|