Python コードにおける入力値変換の例外処理 - 例外発生条件と対策
Python コードにおいて、ユーザー入力値を整数型に変換する際に発生する可能性のある例外について考えてみましょう。
weight = int(input('体重をkgで入力:'))
上記のコードでは、ユーザーから入力された値を int() 関数を使って整数型に変換しています。この際に発生する可能性のある例外は次のとおりです。
- 'int' に変換できない: 入力値が数字以外の文字列や、小数点を含む値の場合、
int()関数は ValueError を発生させます。 - 入力に時間がかかりすぎた: この例外は
input()関数ではなく、プログラム全体のタイムアウトに関するものです。 - 負の値入力された: 負の値は整数として有効なため、例外は発生しません。
- 0が入力された: 0 は整数として有効なため、例外は発生しません。
したがって、上記のコードで起こりうる例外は 'int' に変換できない です。
対策
int() 関数を使用する前に、入力値が整数に変換可能かどうかを確認する必要があります。これには、try-except ブロックを使用することができます。
while True:
try:
weight = int(input('体重をkgで入力:'))
break
except ValueError:
print('整数を入力してください。')
このコードでは、try ブロック内で入力値を整数型に変換しようとします。もし ValueError が発生したら、except ブロックが実行され、ユーザーに整数を入力するよう促します。ユーザーが整数を入力するまで、while ループは繰り返されます。
このように、try-except ブロックを使用することで、プログラムの安定性を高め、予期せぬ例外によるクラッシュを防ぐことができます。
原文地址: https://www.cveoy.top/t/topic/dLbi 著作权归作者所有。请勿转载和采集!