這被認爲是Python的IDLE編輯器的一個問題。 (我在OSX上運行Python 3.3.0,但2.7.3出現同樣的問題)Python,IDLE:遞歸錯誤太多
我正在使用IDLE編寫Python程序。我的問題是:調用一個遞歸函數,它自己調用次數太多(1000次),並不會給我一個運行時錯誤,而是一直給我發送錯誤消息,直到關閉程序。
應該發送的錯誤是:「RuntimeError:超過最大遞歸深度。」 它發送錯誤千倍isntead只是一個點出來到腳本的問題是:
Traceback (most recent call last):
File "<pyshell#112>", line 1, in <module>
factorial(1.5)
File "/Users/User/Documents/Python/Scripts/program1.py", line 187, in factorial
recurse = factorial(n-1)
File "/Users/User/Documents/Python/Scripts/program1.py", line 187, in factorial
recurse = factorial(n-1)
等
這正好與所有的遞歸函數調用自身的次數太多,但這裏使用的具體功能是:
def factorial(n):
if n == 0:
return 1
else:
recurse = factorial(n-1)
result = n * recurse
return result
相關:http://stackoverflow.com/questions/2401447/python-recursive-function-error-maximum-recursion-depth-exceeded – 2013-03-15 18:08:35
相關:HTTP:// stackoverflow.com/questions/8177073/python-maximum-recursion-depth-exceeded – 2013-03-15 18:08:56
它看起來像IDLE打印出每一個堆棧幀(其中有很多)。我不知道是否有限制它打印多少幀的方法。 – NPE 2013-03-15 18:09:51