【Python】「ValueError: invalid literal for int() with base 10: ~」の解決方法
こんにちは、にわこまです。
今回は、文字列から整数に変換する際に発生するエラーの解決方法を紹介します。文字列から整数に変換することは、しばしばあると思います。そんな時に困らないようにしましょう。
誤字脱字や何かございましたらご連絡お願いします。
スポンサードサーチ
整数の変換に関する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まで!
最後までお読みいただきありがとうございます。
スポンサードサーチ