2022年01月31日 更新
どうも、クラゲジュニアです。
簡単に言うと、自分自身を何度も呼び出す関数です。
使い方次第でコードを効率的に書くことができ、探索アルゴリズムや木構造などで使われています。
再帰関数を使って5の階乗(5!)を求める例です。
def func(x):
if x == 0 or x == 1: # ※1
return 1
else:
return x * func(x - 1) # ※2
print(func(5))
※1の条件分岐で関数の終了条件を記載します。
上記の例では、xに0もしくは1が渡されたタイミングで1を返して関数を終了します。
※2の処理で、自分自身を呼び出します。
※1の終了条件を書いておかないと、スタックオーバーフローが生じてしまうため注意が必要です。
以上です。