使用
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代码.
在你的情况下,事实证明你所拥有的是一个数字元组,所有已经解析并准备工作,但通常你并不真的想要使用这种奇怪的副作用.其他输入可能导致任何数量的事情发生.
顺便说一句,在Python 3中他们修复了这个问题,现在input功能可以满足你的期望.
还有两件事:
>您不需要导入字符串来进行简单的字符串操作.
>与mjv said一样,要将元组或列表拆分为多个变量,您可以“解压缩”它.但是,如果您不知道列表的长度,这将是不可行的.
开箱:
>>> l = (1,2,3,4,5)
>>> a,b,c,d,e = l
>>> e
5