在Python 3.3中同时分配

时间:2015-11-24 07:25:08

标签: python-3.x syntax-error

我是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编程,但我认为它们现在对我来说太高了。请帮忙。

2 个答案:

答案 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 ...) - 将每个字符串片段值转换为整数。