上級 › 再帰の終了条件が無いときの原因と直し方 › パターン5
再帰の終了条件が無いときの原因と直し方
再帰関数に終了条件(ベースケース)が無い、または正しく機能していないときに発生します。
1 def power(base, exp): 2 _____________________ ^ 3 return base * power(base, exp - 1) 4 5 print(power(2, 5))
Traceback (most recent call last):
File "main.py", line 5, in <module>
print(power(2, 5))
^^^^^^^^^^^
File "main.py", line 3, in power
return base * power(base, exp - 1)
^^^^^^^^^^^^^^^^^^^^
...(同じ行が何度も繰り返される)...
RecursionError: maximum recursion depth exceeded
空欄を埋めて実行を通す
べき乗の再帰計算も同じ構造です。指数が0になったら1を返して止める条件が必要です。
次の問題