Pythonでは他の言語と同様に再帰関数を作ることができます。
再帰関数は使えるとロジックが簡単になったり、高速化できることもあるので使えるようになっているのに越したことはないです。
Pythonで再帰関数を作る方法
Pythonでは他の言語と同様に再帰関数を作ることができます。
再帰処理とは
ある手続き(関数)中で再びその手続き(関数)自身を呼び出すこと。
自分自身を呼び出す関数を再帰的 (recursive) であると呼び、再帰的な関数のことを再帰関数 (recursive function) と呼ぶ
ある手続き(関数)中で再びその手続き(関数)自身を呼び出すこと。
自分自身を呼び出す関数を再帰的 (recursive) であると呼び、再帰的な関数のことを再帰関数 (recursive function) と呼ぶ
再帰関数はディレクトリやファイルを示す「ツリー構造」や、構文解析、複数のデータをソートを行う場合などに用いられることがあります。
再帰関数を作る際の注意点
再帰関数を作る場合には以下の点を注意して作成しなくてはなりません。
- 必ず終了条件を書く
- ネスト(再帰呼出を重ねる回数)が多くなるとメモリー(スタック)が枯渇する
Pythonで再帰関数の実装
Pythonで再帰関数の実装は他の言語と変わるところはなく、前項の注意事項に留意してコーディングします。
def recursive( count=0 ): print( "countは{}".format( count ) ) if count > 0 : #countが0なら再帰呼出を終了(←終了条件) return recursive( count - 1 ) #再帰呼出 print( "終了" ) return count #再帰関数呼び出し(10回) recursive( count=9 )
上記の処理を実行すると
countは9 countは8 countは7 countは6 countは5 countは4 countは3 countは2 countは1 countは0 終了
になります。
まとめ
再帰呼出は簡単そうですが少し使うには「コツ」が要ります。
でもマスターすれば複雑なロジックが簡単になることもあり、とても有益な手法です。
是非マスターして使えるようになりましょう。
以上、Pythonで再帰関数を作る方法でした。