我是python编程的新手。我指的是一本书“Python编程:计算机科学概论”。这是面向python 2.由于我不能按照面向python 3的基本书,我面临下面描述的语法问题
>>> def f():
x,y=input("enter two numbers seperated by a comma: ")
s=x+y
d=x-y
print (s,d)
f()
我得到的结果是
>>> f()
enter two numbers seperated by a comma: 2,3
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
f()
File "<pyshell#9>", line 2, in f
x,y=input("enter two numbers seperated by a comma: ")
ValueError: too many values to unpack (expected 2)
我试图在一些书中找到解决方案,比如潜入python 3和核心python编程,但我认为它们现在对我来说太高了。请帮忙。
答案 0 :(得分:0)
input
函数返回一个str
(在Python 3中),它不会自动拆分为两个变量。您需要执行以下操作:
x, y = input('enter two numbers separated by a comma:').split(',')
答案 1 :(得分:0)
“input”当时只返回一个值,因此您无法为两个变量分配它。如果您希望使用两个值,则可能需要按空格或任何其他方便的分隔符拆分字符串。
>>> x,y = map(int, input("Enter x and y separated by comma: ").split(',', 1))
Enter x and y separated by comma: 1, 2
>>> x
1
>>> y
2
split(var,1) - 确保只将字符串拆分为两个部分。 map(int ...) - 将每个字符串片段值转换为整数。