我正在阅读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:
当我在这里搜索它时,答案似乎并不适用于我的问题,他们的参与更多,或者我听不懂。
答案 0 :(得分:3)
答案 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()