Day 215例外処理tryとexceptの基本
Pythonコード
1def get_user_age():2 while True:3 try:4 age = int(input('あなたの年齢を入力してください:'))5 return age6 except ValueError:7 print('数値で入力してください。再入力してください。')8 9print('あなたの年齢は', get_user_age(), '歳です。')
解説
- 行1〜3: このコードでは、ユーザーの年齢を入力するための関数 `get_user_age` を定義しています。while ループを使って、ユーザーが正しい数値を入力するまで繰り返します。while ループは、条件が True の間、繰り返し実行されます。
- 行4〜5: try ブロック内では、ユーザーの入力を `int()` 関数で数値に変換しようとします。`int()` 関数は、文字列を整数に変換します。もし成功すれば、入力された年齢を返します。return は、関数の実行を終了し、値を呼び出し元に返します。
- 行6〜7: except ブロックでは、数値への変換に失敗した場合(例えば、文字を入力した場合)に発生する `ValueError` 例外を捕捉します。エラーメッセージを表示して、再入力を求めます。`print()` 関数は、指定された値を標準出力に表示します。
- 行9: 最後に、入力された年齢を出力します。`print()` 関数は、複数の値を指定できます。値は、スペースで区切られて表示されます。
- 行7〜9: 補足: `input()` 関数は、ユーザーから入力された値を文字列として返します。
次に試してみよう
- 入力された年齢に基づいて、20歳未満、20〜64歳、65歳以上の三つの年代に分類するプログラムを作成してみましょう。
- ユーザーに名前も入力させて、年齢と名前を一緒に出力するようにしてみましょう。
- 入力された数値が正の数であるかどうかをチェックする例外処理を追加してみましょう。