我编写了一个解决家庭作业问题的程序,该程序成功通过了所需的测试用例,并且我通过了测试,但是我实际上无法使它自己工作。我知道代码通过问题的测试用例是正确的,但是我无法使其自己工作。我有一个要从用户输入的列表,而且我做到了,所以用空格隔开。我输入的数字之间有一个空格,当我遍历列表时,我按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
答案 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()
。