如何输入具有多个数字的列表(在终端上逐字输入)

时间:2019-05-20 16:32:30

标签: python

我编写了一个解决家庭作业问题的程序,该程序成功通过了所需的测试用例,并且我通过了测试,但是我实际上无法使它自己工作。我知道代码通过问题的测试用例是正确的,但是我无法使其自己工作。我有一个要从用户输入的列表,而且我做到了,所以用空格隔开。我输入的数字之间有一个空格,当我遍历列表时,我按Enter键并得到了回溯:输入的语法无效

我要一行输入列表,将每个数字用空格隔开,然后在输入最终数字后按Enter键。

input_n = int(input())
print('numbers')
input_numbers = [int(x) for x in input().split()]

输入:

3
126 564 656

输出:

Traceback (most recent call last):

  File "<string>", line 1
    126 564 656
          ^
SyntaxError: invalid syntax

3 个答案:

答案 0 :(得分:1)

这是在python 3和python 2.7之间更改的内容。在python 3中,input()从用户处获取输入并将其作为字符串返回。在python 2.7中,input()从用户那里获取输入...,然后将其解释为python命令。

如上所述,在2.7中使用raw_input()而不是input()。

(尽管通常也要确保使用与学校使用相同版本的python测试程序,否则版本之间的差异将使您的生活陷入困境。)

答案 1 :(得分:0)

使用raw_input将整个输入作为字符串获取,然后可以对其进行解析并将其转换为整数。

尝试以下代码:

input_n = raw_input()
print('numbers')
input_numbers = [int(x) for x in input_n.split()]
print input_numbers

在正在运行的程序中,Ouput将为:

3 126 564 656 ==> This is input from user.
numbers
[3, 126, 564, 656]

答案 2 :(得分:0)

您的错误很可能发生,因为您正在使用Python 2进行解释,其中input()将其参数评估为代码。请改用raw_input()