这应该是 Python 的 IDLE 编辑器的问题。(我在 OSX 上运行 Python 3.3.0,但同样的问题出现在 2.7.3 上)
我正在使用 IDLE 编写 Python 程序。我的问题是:调用一个递归函数,它调用自己太多次(1000 次),不会给我一个运行时错误,而是会一直向我发送错误消息,直到我关闭程序。
它应该发送的错误是:“RuntimeError:超出最大递归深度。” 它发送一千次的错误只是指出脚本中的问题所在:
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