PythonのValueError: int()における無効なリテラル(文字列)の例外処理


  1. 入力データの確認: エラーメッセージで指定された文字列を確認し、整数に変換できる形式かどうかを確認してください。例えば、数字以外の文字や空白文字が含まれていないかを確認します。
data = "123abc"  # エラーが発生したデータ
if data.isdigit():
    value = int(data)
else:
    print("無効な文字列です。")
  1. 例外処理による対応: try-except文を使用して、エラーが発生した場合に例外処理を行うことができます。
data = "123abc"  # エラーが発生したデータ
try:
    value = int(data)
except ValueError:
    print("無効な文字列です。")
  1. 正規表現を使用したデータのフィルタリング: 正規表現を使用して、整数に変換できる形式の文字列のみを許可するフィルタリングを行うこともできます。
import re
data = "123abc"  # エラーが発生したデータ
pattern = r'^[0-9]+$'  # 数字のみを許可する正規表現パターン
if re.match(pattern, data):
    value = int(data)
else:
    print("無効な文字列です。")
  1. エラーメッセージの表示と詳細なデバッグ情報の取得: エラーメッセージには、どの部分の文字列が問題となっているかが含まれています。これを利用して、具体的な原因を特定しましょう。
data = "123abc"  # エラーが発生したデータ
try:
    value = int(data)
except ValueError as e:
    print("無効な文字列です。")
    print("エラーメッセージ:", str(e))