ValueError: 압축을 풀 값이 너무 많습니다.

Zeeshan Afridi 2023년6월21일
  1. 파이썬에서 ValueError란 무엇인가
  2. Python에서 ValueError: too many values to unpack 수정
  3. 파이썬에서 Try-Catch를 사용하여 ValueError: too many values to unpack 예외 처리
ValueError: 압축을 풀 값이 너무 많습니다.

ValueError: too many values to unpack은 때때로 할당 연산자 =의 왼쪽에 있는 변수가 할당 연산자 =의 오른쪽에 있는 값과 같지 않을 때 발생합니다.

단일 input 문에서 사용자로부터 둘 이상의 입력을 받거나 일부 값에 동일하지 않은 변수를 할당하려고 할 때 일반적으로 발생합니다.

파이썬에서 ValueError란 무엇인가

ValueError는 값의 수가 입력, 직접 할당 또는 배열을 통해 변수의 수를 충족하지 않을 때 발생하는 Python의 일반적인 예외입니다. ValueError를 이해하기 위해 예를 들어 보겠습니다.

코드 예:

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

출력:

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

위의 코드에서 볼 수 있듯이 xy라는 두 개의 입력을 받고 있습니다. input 문에는 쉼표 ,로 구분된 두 개의 값이 필요합니다.

그러나 이 경우 ValueError: too many values to unpack을 발생시킨 항목을 설명하기 위해 세 개의 값을 입력으로 제공했습니다.

ValueError: too many values to unpack의 또 다른 경우는 값을 변수에 직접 할당할 수 있습니다. 예를 통해 이해해 봅시다.

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)

위는 ValueError를 발생시키는 몇 가지 다른 경우입니다.

Python에서 ValueError: too many values to unpack 수정

ValueError를 방지하려면 input 문, list 또는 array에서 예상하는 정확한 값 수를 제공해야 합니다. 모범 사례는 try-catch 블록을 사용하고 사용자를 안내하는 메시지를 표시하는 것입니다.

ValueError: too many values to unpack을 수정하는 방법을 이해합시다.

# 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)

출력:

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

파이썬에서 Try-Catch를 사용하여 ValueError: too many values to unpack 예외 처리

거의 모든 다른 프로그래밍 언어에는 예외 처리를 위한 try-catch 메커니즘이 있습니다. 예외 처리는 프로그램이 충돌하기 전에 오류 또는 예외를 제어하고 오류의 특성과 원인을 표시하는 데 도움이 되는 능동적 메커니즘입니다.

또한 메시지를 표시하여 예외를 해석할 수 있습니다.

예를 통해 이해해 봅시다.

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.")

출력:

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.

보시다시피 위의 프로그램은 실패했고 ValueError가 발생했지만 프로그램이 아직 충돌하지 않았습니다.

try 블록의 코드가 ValueError 예외를 발생시킨 것을 볼 수 있으며, 줄에서 오류를 충돌시키는 대신 try 블록이 예외를 해석하고 표시하는 except 블록에 오류를 전달했습니다. 사용자에게 맞춤형 메시지. 사용자 지정 메시지는 오류를 쉽게 해석하는 데 도움이 됩니다.

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

관련 문장 - Python Error