再帰関数とは何か?
再帰関数とは、自分自身を呼び出す関数のことです。再帰関数を使うことで、繰り返し処理を簡潔に書くことができます。
再帰関数の基本的な書き方と動作の解説
再帰関数を書くには、以下のようなステップが必要です。
- 関数内で自分自身を呼び出す
- 終了条件を設定する
以下は、再帰関数を使って1からnまでの和を求めるプログラムの例です。
def sum(n):
if n == 1:
return 1
else:
return n + sum(n-1)
print(sum(5)) # 15
このプログラムでは、sum関数が自分自身を呼び出すことで、1からnまでの和を求めています。また、nが1になったときには終了条件として1を返します。
再帰関数を用いたリスト操作の方法
再帰関数を使うことで、リストの要素を繰り返し処理することができます。
以下は、再帰関数を使ってリストの要素を合計するプログラムの例です。
def sum_list(l):
if len(l) == 1:
return l[0]
else:
return l[0] + sum_list(l[1:])
my_list = [1,2,3,4,5]
print(sum_list(my_list)) # 15
このプログラムでは、sum_list関数が自分自身を呼び出すことで、リストの要素を繰り返し処理しています。また、リストの要素が1つになったときには終了条件としてその要素を返します。
再帰関数とreturnの関係性について
再帰関数を使う際には、return文を使って値を返す必要があります。再帰関数が自分自身を呼び出す際には、その結果をreturn文で返すことができます。
returnを用いた再帰関数のリスト操作の例
以下は、再帰関数とreturnを使ってリスト内の最大値を求めるプログラムの例です。
def max_list(l):
if len(l) == 1:
return l[0]
else:
max_num = max_list(l[1:])
if l[0] > max_num:
return l[0]
else:
return max_num
my_list = [1,2,5,4,3]
print(max_list(my_list)) # 5
このプログラムでは、max_list関数が自分自身を呼び出すことで、リストの要素を繰り返し処理しています。また、リストの要素が1つになったときには終了条件としてその要素を返します。さらに、最大値を求めるために、再帰関数の結果とリストの先頭要素を比較して、より大きい方をreturn文で返しています。
Pythonでの再帰関数の注意点と限界
Pythonでは、再帰関数の呼び出し回数に制限があります。デフォルトで1000回までの呼び出ししか許されていないため、再帰関数を使う場合には、注意が必要です。また、再帰関数を使いすぎると、スタックオーバーフローのような問題が発生する可能性があります。
まとめ
再帰関数を使うことで、繰り返し処理を簡潔に書くことができます。リストの要素を繰り返し処理する場合にも、再帰関数を使うことができます。再帰関数を使う際には、終了条件を設定することが重要です。また、Pythonでは再帰関数の呼び出し回数に制限があるため、注意が必要です。
![[Python]RequestsとJSON(header、dataの設定、文字化け)](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/11/1-169.jpg)




