Day 51finally節で後処理を行う
Pythonコード
1def divide_numbers():2 try:3 num1 = float(input('最初の数字を入力してください:'))4 num2 = float(input('2番目の数字を入力してください:'))5 result = num1 / num26 print('結果:', result)7 except ZeroDivisionError:8 print('0で割ることはできません。')9 except ValueError:10 print('数字以外の入力はできません。')11 finally:12 print('計算が終了しました。')13 14divide_numbers()
解説
- 行1〜3: このコードでは、関数`divide_numbers`を定義しています。この関数内で、ユーザーから2つの数字を入力してもらい、それらを割り算する処理を行います。`float(input(...))`は、ユーザーの入力を浮動小数点数に変換するために使用します。`input()`関数は、ユーザーから入力を受け取る関数です。
- 行4〜6: `try`ブロック内で、入力された数字を割り算し、その結果を`result`変数に格納します。結果を表示するために`print`関数を使用します。`print()`関数は、指定された値を画面に表示する関数です。
- 行7〜8: `except ZeroDivisionError`ブロックは、0で割ったときに発生するエラーを捕捉し、エラーメッセージを表示します。`except ValueError`ブロックは、数字以外の入力がされたときに発生するエラーを捕捉し、エラーメッセージを表示します。
- 行11〜12: `finally`ブロックは、どのようなエラーが発生したかに関係なく、常に実行されます。この場合、計算が終了したことをユーザーに通知するメッセージを表示します。
- 行1〜12: 補足: `try`/`except`/`finally`ブロックは、エラー処理を行うために使用されます。`try`ブロックでエラーが発生した場合、対応する`except`ブロックが実行されます。`finally`ブロックは、常に実行されます。
次に試してみよう
- 0で割るエラーと値エラーの違いを確認してみましょう。
- finally節でファイルを閉じる処理を行う例を作ってみましょう。
- try/except/finallyブロックをネストして、複雑なエラー処理を行う例を作ってみましょう。