Python 带有 Input() 的代码在 Sublime REPL 中给出语法错误,但适用于 Python Shell

Python code with Input() given syntax error in Sublime REPL, but works with Python Shell

我在 python 3 中输入了一段代码,python shell 运行 非常好并且给出了正确的输出。我将此代码转移到 Sublime Text 3,下载了 sublime REPL 包,并将其用于 运行 我的代码。但是,当我 运行 它并使用 REPL 在 Sublime 中输入输入时,它告诉我存在语法错误。这是它发现语法错误的行:

dataGiven = sorted([float(x) for x in input("Enter data separated by a space (At least 3 values of data must be entered) ").split()])

但是,没有语法错误,因为 python shell 运行 代码正确。请帮忙。我发现 Sublime text 真的很有用,但由于这个输入,它只是不会 运行 正确。如果您需要,我愿意 post 更大的代码段。提前致谢。

编辑

错误截图:

Traceback (most recent call last):
  File "Untitled.py", line 708, in <module>
    dataGiven = sorted([float(x) for x in input("Enter data separated by a space (At least 3 values of data must be entered) ").split()])
  File "<string>", line 1
    78 67 45
        ^
SyntaxError: invalid syntax

***Repl Closed***

听起来 Sublime 是 运行使用 Python 2 解释器对其进行编译。 input 尝试 eval 在 Python 2 中输入的字符串,这是在 运行 时获得 SyntaxError 的唯一方法(因为大多数任意用户输入的字符串语法上不合法 Python 代码)。尝试将您的代码更改为:

import sys
print(sys.version_info)

这会告诉您它的实际版本 运行。如果它是 Python 2,并且你需要它在 Python 2 上 运行 就像它在 Python 3 上一样,切换到 raw_input 函数,或者屏蔽消除版本差异,添加:

if sys.version_info < (3,):
    input = raw_input

到文件的顶部,在 Python 2 上用 raw_input 替换 input,因此它的行为与在 Python 3.[=18= 上的一样]