【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とは、統計処理や機械学習、ディープラーニングといった数値計算分野を中心に幅広い用途で利用されている人気なプログラミング言語です。 主な特徴として「効率のよい、短くて読みやすいコードを書きやすい」、「ライブラリが豊富なのでサクッと...

コメント