上級 › RecursionError: maximum recursion depth exceeded の原因と直し方 › パターン2
RecursionError: maximum recursion depth exceeded の原因と直し方
再帰関数に終了条件(ベースケース)が無い、または正しく機能していないときに発生します。
1 def factorial(n): 2 ___________________ ^ 3 return n * factorial(n - 1) 4 5 print(factorial(5))
Traceback (most recent call last):
File "main.py", line 5, in <module>
print(factorial(5))
^^^^^^^^^^^^
File "main.py", line 3, in factorial
return n * factorial(n - 1)
^^^^^^^^^^^^^^^^
...(同じ行が何度も繰り返される)...
RecursionError: maximum recursion depth exceeded
空欄を埋めて実行を通す
階乗の計算は定番の再帰例ですが、n<=1で止める条件を書き忘れると永遠に自分自身を呼び続けます。
次の問題