【Python】ValueErrorの解決方法

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

今回は、pythonのValueErrorの解決方法を紹介します。int型やfloat型に変換する際によく発生するエラーです。また、変数へ値を代入する時にもよく発生するエラーです。単純なミスによって発生するエラーであるため、簡単に解決することができます。

 

誤字脱字や分からない点、解決し欲しい問題がありましたらご連絡お願いいたします。

メールまたはTwitterのDMまで!

 

 

スポンサードサーチ


ValueErrorの解決方法

・変数の数と代入する値の数を確認する

・関数に代入した引数の確認する

 

上記のように変数の数と代入する値の数を確認することや引数を確認することでValueErrorを解決することができます。

 

そもそも「ValueError」とは、「適切でない値が代入されています」というエラーです。

 

 

解決方法 too many values to unpack

以下のようなエラーを解決する方法を紹介します。

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

x, y = 1, 2, 3

=== 実行結果 ===
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 2)

 

上記のサンプルコードは、変数x, yに数値1, 2, 3を代入しようとしたコードです。

 

変数の数が2つであり、代入する値が3であるためエラーが発生しました。

変数の数と代入するう値の数を同じにすることでエラーを解決することができます。上記のコードの場合であれば、変数の数を3つにするか、代入する値の数を2つにすることで解決することができます。

 

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

x, y, z = 1, 2, 3
print("{0}, {1}, {2}".format(x, y, z))

=== 実行結果 ===
1, 2, 3

 

 

解決方法 not enough values to unpack

以下のようなエラーを解決する方法を紹介します。

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

def func(x):
    return x ** 2, x ** 3

x, y, z = func(2)
print("{0}, {1}, {2}".format(x, y, z))

=== 実行結果 ===
Traceback (most recent call last):
  File "python_valueerror.py", line 4, in <module>
    x, y, z = func(2)
ValueError: not enough values to unpack (expected 3, got 2)

 

上記のサンプルコードは、関数funcの返却値を変数x, y, zに代入しようとしたコードです。関数funcは引数の2乗と3乗を返す関数です。

 

関数funcの返却値の数は2つに対して、変数は3つあるためエラーが発生しました。

変数の数を返却値の数と同じにすることで解決することができます。

 

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

def func(x):
    return x ** 2, x ** 3

x, y = func(2)
print("{0}, {1}".format(x, y))

=== 実行結果 ===
4, 8

 

 

解決方法 invalid literal for int() with base 10

以下のようなエラーを解決する方法を紹介します。

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

int("asd")

=== 実行結果 ===
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'asd'

 

上記のサンプルコードは文字列「asd」をint型に変換しようとしたコードです。

 

int関数に文字列を代入したため、エラーが発生しました。

int関数に数字を代入することでエラーを解決することができます。

 

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

int("369")

=== 実行結果 ===
369

 

int関数の他にもfloat関数に文字列を代入するとValueErrorが発生します。

 

 

まとめ

まとめの画像

今回は、pythonのエラーの1つであるValueErrorの解決方法を紹介しました。とても単純なことが原因で発生するエラーであるため、解決方法も簡単です。

 

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

・変数の数と代入する値の数を確認する

・関数に代入した引数の確認する

  

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

 

 

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


スポンサードサーチ