これはおそらくPython用のIDLEエディターの問題です。(OSXでPython 3.3.0を実行していますが、2.7.3でも同じ問題が発生します)
私はIDLEを使用してPythonプログラムを作成しています。私の問題は次のとおりです。再帰関数を呼び出すと、それ自体が何度も(1000回)呼び出されても、実行時エラーは1つも発生しませんが、プログラムを閉じるまでエラーメッセージが送信され続けます。
送信する必要のあるエラーは、「RuntimeError:最大再帰深度を超えました」です。それが1000回送信するエラーは、スクリプトのどこに問題があるかを単に指摘するだけです。
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