Day 218独自に例外を送出するraise
Pythonコード
1def calculate_average(numbers):2 if len(numbers) == 0:3 raise ValueError("数字のリストは空にできません")4 return sum(numbers) / len(numbers)5 6try:7 numbers = input("数字をスペースで区切って入力してください:")8 numbers = [int(num) for num in numbers.split()]9 average = calculate_average(numbers)10 print("平均は", average)11except ValueError as e:12 print("エラー:", e)13except Exception as e:14 print("予期せぬエラー:", e)
解説
- 行1〜4: 平均を計算する関数 `calculate_average` を定義しています。ここでは、数字のリストが空の場合に `ValueError` という例外を送出します。`len()` はリストの要素数を返し、`sum()` はリストの合計を返します。組み込み関数 `raise` は、指定された例外を送出します。
- 行6〜8: ユーザーから数字のリストを入力してもらいます。`input()` で入力を受け付け、`split()` でスペースで区切った文字列をリストに変換します。`int()` で文字列を整数に変換しています。ここでは、入力ミスに対するエラー処理は実装されていません。
- 行9〜11: `calculate_average` 関数を呼び出し、平均を計算します。平均を計算できたら、結果を出力します。組み込み関数 `print()` は、指定された値を画面に表示します。
- 行11〜14: 例外が発生した場合に、エラーメッセージを出力します。`try` ブロックで発生した例外を `except` ブロックで捕捉し、エラーメッセージを出力します。
次に試してみよう
- 入力された数字の合計も出力してみましょう
- 数字のリストが空の場合に、より親切なエラーメッセージを出力してみましょう
- 予期せぬエラーが発生した場合に、より詳細なエラーメッセージを出力してみましょう