使用raw_input()
代替input()
。
# Python 2.5.4
>>> a = raw_input()
3, 4, 5
>>> a
'3, 4, 5'
>>> b = a.split(', ')
>>> b
['3', '4', '5']
>>> [s.strip() for s in raw_input().split(",")] # one liner
3, 4, 5
['3', '4', '5']
具有误导性的名称input
功能无法实现您期望的功能。它实际上将stdin的输入评估为python代码。
以您的情况为例,您所拥有的只是一个元组中的数字a
,所有这些数字都已解析并可以工作,但是通常您并不真正想要使用这种奇怪的副作用。其他输入可能导致任何事情发生。
顺便说一句,他们在Python 3中解决了这个问题,现在该input
功能可以实现您的期望。
还有两件事:
开箱:
>>> l = (1,2,3,4,5)
>>> a,b,c,d,e = l
>>> e
5