ValueError: Zu viele Werte zum Entpacken

Zeeshan Afridi 21 Juni 2023
  1. Was ist ValueError in Python
  2. Beheben Sie den ValueError: too many values to unpack in Python
  3. Ausnahme ValueError: too many values to unpack mit Try-Catch in Python behandeln
ValueError: Zu viele Werte zum Entpacken

Der ValueError: too many values to unpack tritt manchmal auf, wenn die Variablen auf der linken Seite des Zuweisungsoperators = nicht gleich den Werten auf der rechten Seite des Zuweisungsoperators = sind.

Dies passiert häufig, wenn Sie versuchen, mehr als eine Eingabe vom Benutzer in einer einzigen Eingabe-Anweisung entgegenzunehmen oder einigen Werten ungleiche Variablen zuzuweisen.

Was ist ValueError in Python

Ein ValueError ist eine häufige Ausnahme in Python, die auftritt, wenn Ihre Anzahl von Werten nicht der Anzahl von Variablen entspricht, die entweder Eingaben, direkte Zuweisungen oder über ein Array annehmen. Um den ValueError zu verstehen, nehmen wir ein Beispiel.

Codebeispiel:

# take two string values as input separated by a comma
x, y = input("Enter x and y: ").split(",")

Ausgang:

Eneter x and y: 3,2,1
ValueError: too many values to unpack (expected 2)

Wie Sie im obigen Code sehen können, nehmen wir zwei Eingaben, x und y; die input-Anweisung erwartet zwei durch das Komma , getrennte Werte.

Aber in diesem Fall haben wir drei Werte als Eingabe bereitgestellt, um das Thema zu demonstrieren, das den ValueError: too many values to unpack ausgelöst hat.

Ein weiterer Fall des ValueError: too many values to unpack könnte die direkte Zuweisung von Werten an Variablen sein. Lassen Sie es uns anhand eines Beispiels verstehen.

a, b = 2, 3, 5  # ValueError: too many values to unpack (expected 2)
a, b, c = 2, 3  # ValueError: not enough values to unpack (expected 3, got 2)
a, b = [3, 2, 1]  # ValueError: too many values to unpack (expected 2)

Die oben genannten sind einige andere Fälle, die den ValueError auslösen.

Beheben Sie den ValueError: too many values to unpack in Python

Um den ValueError zu vermeiden, sollten Sie die genaue Anzahl von Werten angeben, die entweder von der input-Anweisung, einer list oder einem array erwartet werden. Die Best Practices bestehen darin, try-catch-Blöcke zu verwenden und Nachrichten für die Benutzer anzuzeigen, um sie zu führen.

Lassen Sie uns verstehen, wie wir den ValueError: too many values to unpack beheben können.

# User message --> Enter the two numbers to add  ::
a, b = input("Enter two numbers to add  ::  ").split(",")

# type casting a and b
a = int(a)
b = int(b)

print("The sum of the two numbers is     :: ", a + b)

Ausgang:

Enter two numbers to add  ::  22,23
The sum of the two numbers is     ::  45

Ausnahme ValueError: too many values to unpack mit Try-Catch in Python behandeln

Fast jede andere Programmiersprache hat den try-catch-Mechanismus zur Ausnahmebehandlung. Die Ausnahmebehandlung ist ein proaktiver Mechanismus, der die Fehler oder Ausnahmen vor dem Absturz des Programms kontrolliert und dabei hilft, die Art und Ursache des Fehlers anzuzeigen.

Außerdem können Sie Ihre Nachrichten anzeigen, um die Ausnahmen zu interpretieren.

Lassen Sie es uns anhand eines Beispiels verstehen.

try:
    # User message --> Enter the two numbers to add  ::
    x, y = input("Enter  two numbers to add  ::  ").split(",")

    # type casting x and y
    x = int(x)
    y = int(y)
    print("The sum of the two numbers is      :: ", x + y)

except ValueError as v:
    print(
        "Oops! Looks like you have enter an invalid number of input"
        + "\nPlease enter two numbers to add"
    )
    print("ValueError:", v)

print("\nWow! The program is not crashed.")

Ausgang:

Enter  two numbers to add  ::  1,2,3
Oops! Looks like you have enter an invalid number of input
Please enter two numbers to add
ValueError: too many values to unpack (expected 2)

Wow! The program is not crashed.

Wie Sie sehen können, ist das obige Programm fehlgeschlagen und verursacht den ValueError, aber beachten Sie, dass das Programm noch nicht abgestürzt ist.

Sie können sehen, dass der Code im try-Block die ValueError-Ausnahme verursacht hat, und anstatt sie an der Zeile zum Absturz zu bringen, hat der try-Block den Fehler an den except-Block weitergegeben, der die Ausnahme interpretiert und anzeigt eine angepasste Nachricht an den Benutzer. Die angepasste Nachricht hilft uns, den Fehler einfach zu interpretieren.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

Verwandter Artikel - Python Error