RecursionError
関数が自分自身を呼び出す「再帰」が深くなりすぎたときに発生するエラーです。
原因
再帰関数に終了条件(ベースケース)がない、または誤っていることが原因です。
エラーになるコード例
def countdown(n):
print(n)
countdown(n - 1)
countdown(5)修正版
def countdown(n):
if n <= 0:
print('終了')
return
print(n)
countdown(n - 1)
countdown(5)よくある間違い
- 再帰関数に終了条件(if文でreturnする条件)を書き忘れる
- 終了条件はあるが、再帰のたびに値が終了条件へ近づいていない