ValueError: 압축을 풀 값이 너무 많습니다.
-
파이썬에서
ValueError
란 무엇인가 -
Python에서
ValueError: too many values to unpack
수정 -
파이썬에서
Try-Catch
를 사용하여ValueError: too many values to unpack
예외 처리
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)
위의 코드에서 볼 수 있듯이 x
와 y
라는 두 개의 입력을 받고 있습니다. 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 is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn관련 문장 - Python Error
- AttributeError 수정: Python에서 'generator' 객체에 'next' 속성이 없습니다.
- AttributeError 해결: 'list' 객체 속성 'append'는 읽기 전용입니다.
- AttributeError 해결: Python에서 'Nonetype' 객체에 'Group' 속성이 없습니다.
- AttributeError: 'Dict' 객체에 Python의 'Append' 속성이 없습니다.
- AttributeError: 'NoneType' 객체에 Python의 'Text' 속성이 없습니다.
- AttributeError: Int 객체에 속성이 없습니다.