ValueError:值太多

时间:2018-11-11 21:00:53

标签: python unpack valueerror

我正在阅读python教程。我输入的内容完全是本教程中的内容,但无法运行。我认为问题是本教程使用的是Python 2,而我使用的是Python 3.5。例如,本教程在打印后不使用括号,而我必须这样做,并且它使用raw_input,而我仅使用输入。

这就是我要运行的-

def sumProblem(x, y): 
    print ('The sum of %s and %s is %s.' % (x, y, x+y))


def main(): 
    sumProblem(2, 3) 
    sumProblem(1234567890123, 535790269358) 
    a, b = input("Enter two comma separated numbers: ") 
    sumProblem(a, b)


main()

这是我收到的错误:

ValueError: too many values to unpack (expected 2)

如果我只输入两个数字且不带逗号,它将连接它们。我试图将其更改为整数,但它给出了此错误:

ValueError: invalid literal for int() with base 10: 

当我在这里搜索它时,答案似乎并不适用于我的问题,他们的参与更多,或者我听不懂。

2 个答案:

答案 0 :(得分:3)

您的输入应如下所示:

a, b = map(int, input('text:').split(','))

input返回一行输入-一个字符串。解析留给您。

答案 1 :(得分:2)

input(..)返回字符串。字符串是可迭代的,因此您可以 用以下命令解压缩该字符串:

a, b = input("Enter two comma separated numbers: ") 

,但前提是该字符串恰好包含两个项。因此,对于一个字符串,这意味着该字符串恰好包含两个字符。

但是该代码提示您要输入两个整数。我们可以使用str.split()将字符串拆分为“单词”列表。

然后我们可以使用map作为功能来执行int ping:

def sumProblem(x, y): 
    print ('The sum of %s and %s is %s.' % (x, y, x+y))
def main(): 
    sumProblem(2, 3) 
    sumProblem(1234567890123, 535790269358) 
    a, b = map(int, input("Enter two comma separated numbers: ").split(','))
    sumProblem(a, b)
main()