本文へスキップ
BecomeCoder

Pythonのエラー · エラー11

RecursionError ― 再帰が止まらない

関数が自分自身を止まらず呼び続ける(無限再帰)と出ます。Python は再帰の深さに上限があります。

出るコード

def countdown(n):
    return countdown(n - 1)   # 終了条件が無い

countdown(5)

エラーメッセージ

RecursionError: maximum recursion depth exceeded

直し方

再帰には必ず 止まる条件(ベースケース) を用意します。

def countdown(n):
    if n <= 0:
        return 0
    return countdown(n - 1)