python valueerror: слишком много значений для распаковки
Я новичок python . Я пытался запустить этот код:
def main():
print ( " This program computes the average of two exam scores . ")
score1,score2 = input ("Enter two scores separated by a comma:")
average = (score1 + score2)/2.0
print ("The average of the score is : " , average )
когда я вызываю main()
Я получил ValueError
:
ValueError: too many values to unpack (expected 2)
что не так с этим кодом ?
4 ответов
- вам нужно разделить вход, который вы получаете, потому что он поступает все в одной строке
- тогда вам нужно будет преобразовать их в числа, потому что термин
score1 + score2
будет делать добавление строки в противном случае, и вы получите ошибку.
вам нужно разделить на запятую:
score1,score2 = input ("Enter two scores separated by a comma:").split(",")
обратите внимание, однако, что score1
и score2
будут струны. Вам нужно будет преобразовать их в числа, используя либо float
или int
(в зависимости от того, какой тип номера вы хотите).
пример:
>>> score1,score2 = input("Enter two scores separated by a comma:").split(",")
Enter two scores separated by a comma:1,2
>>> score1
'1'
>>> score1 = int(score1)
>>> score1
1
>>> score1 = float(score1)
>>> score1
1.0
>>>
входные данные поступают как одна строка. Но Python имеет раздвоение личности, когда дело доходит до строк: он может рассматривать их как одно строковое значение или как список символов. Когда вы пытались назначить score1,score2
Он решил, что вам нужен список персонажей. Очевидно, вы напечатали больше двух символов, поэтому он сказал, что у вас слишком много.
в других ответах есть отличные предложения для того, чтобы делать то, что вы действительно хотели, поэтому я не буду повторять их здесь.
Если вы используете args и даете меньше значений при запуске файла, он покажет вам эту ошибку.
* * для исправления, которые дают правильные значения**
from sys import argv
one, two, three,four,five = argv
c=input("Enter the coffee you need?: ")
print("File Name is ",one)
print("First you need ",two)
print("The you need",three)
print("Last you need",four)
print("Last but not least you need",five)
print(f"you need above mentioned items to make {c}.")
While running code give it like this: **python hm5.py milk coffeepowder sugar water**
milk == two
coffeepowder ==three
sugar == four
water == five
one == file name (you don't need to give it while running
My output:
Enter the coffee you need?: filter coffee
First you need milk
The you need coffeepowder
Last you need sugar
Last but not least you need water
you need above mentioned items to make filter coffee.