【Python】「ValueError: invalid literal for int() with base 10: ~」の解決方法

ValueErrorの解決方法

こんにちは、にわこまです。

今回は、文字列から整数に変換する際に発生するエラーの解決方法を紹介します。文字列から整数に変換することは、しばしばあると思います。そんな時に困らないようにしましょう。

 

誤字脱字や何かございましたらご連絡お願いします。

 

 

スポンサードサーチ


整数の変換に関するValueErrorの解決方法

・整数であることを確認する

・float関数を使う

 

上記を行うことで、整数の変換に関するValueErrorを解決することができます。

 

そもそも「整数の変換に関するValueError」とは、「文字列を整数に変換したいけど、文字列が整数じゃないよ」というエラーです。

 

例えば「a」をint関数で整数に変換しようとすると、もちろん「a」は整数でないためエラーが発生します。

「9.8」のような文字列でも同様です。「9.8」は浮動小数点です。整数ではありません。そのため、「9.8」のような浮動小数点の文字列をint関数で変換しようとするとエラーが発生します。

 

 

エラーのサンプルコード1

エラーが発生するサンプルコードとその実行結果を以下に示します。

s = "abc"

i = int(s)

print(i)

=== 実行結果 ===
Traceback (most recent call last):
  File "valueerror_int01.py", line 3, in <module>
    i = int(s)
ValueError: invalid literal for int() with base 10: 'abc'

 

文字列を整数に変換して表示するサンプルコードです。

 

変換対象の文字列が整数でないためエラーが発生しました。

変換対象の文字列を整数に変えることで解決することができます。

 

エラーを解決したサンプルコードとその実行結果を以下に示します。

s = "369"

i = int(s)

print(i)

=== 実行結果 ===
369

 

 

エラーのサンプルコード2

エラーが発生するサンプルコードとその実行結果を以下に示します。

s = "10.0"

i = int(s)

print(i)

=== 実行結果 ===
Traceback (most recent call last):
  File "valueerror_int02.py", line 3, in <module>
    i = int(s)
ValueError: invalid literal for int() with base 10: '10.0'

 

「10.0」の文字列を整数に変換して表示するサンプルコードです。

 

変換対象の文字列が浮動小数点であるためエラーが発生しました。

float関数を使うことで解決することができます。

 

エラーを解決したサンプルコードとその実行結果を以下に示します。

s = "10.0"

i = float(s)

print(i)

=== 実行結果 ===
10.0

 

 

まとめ

まとめの画像

今回は、文字列を整数に変換する際に発生するエラーの解決方法を紹介しました。具体的には、「ValueError: invalid literal for int() with base 10: ~」の解決方法を紹介しました。

 

改めて解決方法を以下に示します。

・整数であることを確認する

・float関数を使う

 

※整数の文字列をfloat関数で変換することは可能であるため、数値に変換する際はfloat関数を使うのがよいです。

 

解決してほしいエラーや問題がありましたらメールまたはTwitterのDMまで!

 

 

最後までお読みいただきありがとうございます。


スポンサードサーチ