【Python】「ValueError: invalid literal for int() with base 10: ~」エラーの原因と解決方法

Pythonの「ValueError: invalid literal for int() with base 10: ~」エラーの原因と解決方法についてまとめました。

Pythonのint関数でエラーになる原因

Pythonのint関数を使うと、「ValueError: invalid literal for int() with base 10: ~」エラーが出ることがあります。
このエラーは、int関数の引数が正しくないことを意味します。

baseを指定しない場合、int関数の引数に与えることができるのは「数値型」もしくは「10進整数書式の文字列、バイト型、バイト配列型」となります。

そのため、エラーの解決方法としては正しい引数をint関数に与えることとなります。
以下でエラーが出る場合と出ない場合のサンプルコードを紹介します。

【サンプルコード】int関数でエラーが出ない場合

int関数でエラーが出ない場合のサンプルコードです。

# 10進書式の文字列
print(int("1")) # 1

# 10進表記の小数
print(int(1.5)) # 1

# 16進数
print(int(0x5)) # 5

# 8進数
print(int(0o5)) # 5

# 2進数
print(int(0b101)) # 5

# ブール値
print(int(True)) # 1

# 10進表記のバイト型
print(int(b'3')) # 3

【サンプルコード】int関数でエラーが出る場合

int関数でエラーが出る場合のサンプルコードです。

# 普通の文字列はエラー
print(int("Hello")) # ValueError

# 少数書式の文字列はエラー
print(int("1.5")) # ValueError

# 16進書式の文字列はエラー
print(int("0x5")) #  ValueError

# 8進書式の文字列はエラー
print(int("0o5")) # ValueError

# 2進書式の文字列はエラー
print(int("0b101")) # ValueError

# ブール値書式の文字列はエラー
print(int("True")) # ValueError

# 16進書式のバイト型はエラー
print(int(b'3')) # ValueError

関連ページ

Pythonの基礎から応用例については以下ページにまとめています。

【Python超入門】使い方とサンプル集
Pythonの使い方について、基礎文法から応用例まで入門者向けに解説します。

コメント