最近我开始研究Python,我遇到了一个问题。
假设你有3个空格分隔的整数,比如4 5 6
当我使用input()方法并接受输入时,它显示错误。
Traceback (most recent call last):
File "P_Try.py", line 1, in <module>
x= input();
File "<string>", line 1
4 5 6
^
SyntaxError: invalid syntax
我猜,因为它在一行中,它假设它是一个字符串,但是在位置2处找到整数(索引从0开始)。 我尝试了替代方法,我使用raw_input()方法将输入作为字符串,并且无论在何处找到数字,我都将其转换为int并将其附加到列表中。
有没有更好的方法来完成任务?
答案 0 :(得分:4)
函数input()
将您的输入解释为Python代码,我知道,这有点奇怪。要获取原始输入(包含用户类型字符的字符串),只需使用raw_input()
函数。
答案 1 :(得分:1)
使用input()
时,python会尝试解释输入,因此在找到空格时会感到困惑。
您正确建议使用raw_input()
。
inp = raw_input() # get raw input
lst = inp.split(" ") # split into list
num_lst = map(int, lst) # apply int() to all items
答案 2 :(得分:1)
如果你刚开始学习,那就使用python3。您的代码的input
行可以正常工作。
如果需要输入3个整数,可以使用如下代码:
x = input()
result = [ int(i) for i in x.split(' ')]
答案 3 :(得分:0)
试试这个:
a = []
a += map(int,raw_input("Enter the integers\n").split(" "))
print a