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= 上的一样]
我在 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= 上的一样]