Day 47再帰関数で階乗を計算
Pythonコード
1def factorial(n):2 if n == 0:3 return 14 else:5 return n * factorial(n-1)6 7try:8 num = int(input('階乗を計算したい数を入力してください:'))9 if num < 0:10 print('負の数の階乗は計算できません。')11 else:12 print(f'{num}の階乗は{factorial(num)}です。')13except ValueError:14 print('数値を入力してください。')
解説
- 行1〜5: 再帰関数factorial(n)を定義します。この関数は、nが0のときは1を返し、それ以外のときはnとfactorial(n-1)の積を返します。つまり、nの階乗を計算します。int()は整数に変換する関数です。
- 行7〜9: ユーザーに数値を入力してもらいます。input()で入力された文字列をint()で整数に変換します。try/exceptで入力ミスを処理します。input()はユーザーから入力を受け付ける関数です。
- 行10〜12: 入力された数値が負のときは、階乗を計算できないのでメッセージを表示します。そうでないときは、factorial()関数で階乗を計算し、結果を表示します。print()は画面に文字や値を表示する関数です。
- 行13〜14: 入力ミスをtry/exceptで処理します。ValueErrorは、値が不正なときに発生する例外です。
次に試してみよう
- 負の数の階乗を計算する方法を調べてみましょう。
- 再帰関数でフィボナッチ数列を計算してみましょう。
- ユーザーが入力した数値の範囲を制限してみましょう。