我想从stdin读取五个输入的数字,如下所示:
3,4,5,1,8
分为单独的变量a,b,c,d和e。
我该如何在python中做到这一点?
我尝试了这个:
import string a=input() b=a.split(', ')
对于两个整数,但它不起作用。我得到:
Traceback (most recent call last): File "C:\Users\Desktop\comb.py", line 3, in <module> b=a.split(', ') AttributeError: 'tuple' object has no attribute 'split'
这该怎么做?并假设我没有固定的变量数,而是n个整数。然后?
使用raw_input()代替input()。
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代码。
input
以您的情况为例,您所拥有的只是一个元组中的数字a,所有这些数字都已解析并可以工作,但是通常您并不真正想要使用这种奇怪的副作用。其他输入可能导致任何事情发生。
a
顺便说一句,他们在Python 3中解决了这个问题,现在该input功能可以实现您的期望。
还有两件事:
import string
开箱:
>>> l = (1,2,3,4,5) >>> a,b,c,d,e = l >>> e 5