SyntaxError:编译单个语句时发现多个语句

SyntaxError: multiple statements found while compiling a single statement

提问人:user3213857 提问时间:1/20/2014 最后编辑:mkrieger1user3213857 更新时间:12/20/2022 访问量:176299

问:

我在 Python 3.3 中,我只输入了以下 3 行:

import sklearn as sk
import numpy as np
import matplotlib.pyplot as plt

我收到此错误:

SyntaxError:编译单个语句时发现多个语句

我可能做错了什么?

截图:

screenshot

语法错误 python-idle python-3.3

评论


答:

22赞 aIKid 1/20/2014 #1

在 shell 中,不能一次执行多个语句:

>>> x = 5
y = 6
SyntaxError: multiple statements found while compiling a single statement

您需要逐个执行它们:

>>> x = 5
>>> y = 6
>>>

当您看到正在声明多个语句时,这意味着您看到的是一个脚本,该脚本将在稍后执行。但是在交互式解释器中,您一次不能执行多个语句。

评论

1赞 Games Brainiac 1/20/2014
这不是真的,你可以粘贴进去,它会正常工作。没有完整的追溯就不可能说,我认为实际的答案更倾向于 JMU 的x=6 \n x=6
0赞 aIKid 1/20/2014
@GamesBrainiac哼哼。真?我粘贴了你的片段,我得到了..SyntaxError: unexpected character after line continuation character
0赞 Games Brainiac 1/20/2014
我将他的代码粘贴到控制台中,没有任何错误。
0赞 aIKid 1/20/2014
@Games 你在用什么?我粘贴了它,我得到了与我答案中的错误完全相同的错误。
1赞 aIKid 1/20/2014
@user2357112啊,是的,我做到了。但是使用实际的换行符只会让我遇到与我的答案相同的错误。
7赞 Evgeni Sergeev 7/22/2020 #2

一个(部分的)实际解决方法是把东西放到一个扔掉的函数中。

粘贴

x = 1
x += 1
print(x)

结果

>>> x = 1
x += 1
print(x)
  File "<stdin>", line 1
    x += 1
print(x)

    ^
SyntaxError: multiple statements found while compiling a single statement
>>>

但是,粘贴

def abc():
  x = 1
  x += 1
  print(x)

工程:

>>> def abc():
  x = 1
  x += 1
  print(x)
>>> abc()
2
>>>

当然,这对于快速的一次性操作是可以的,不适用于您可能想做的所有事情,等等。但是,去 / 可能是下一个最简单的选择。ipythonjupyter qtconsole

1赞 Christabella Irwanto 5/27/2021 #3

长期的解决方案是只使用另一个 GUI 来运行 Python,例如 IDLE 或 Emacs。M-x run-python

60赞 Adnan Boz 5/30/2021 #4

我有同样的问题。这在 mac(和 linux)上对我有用:

echo "set enable-bracketed-paste off" >> ~/.inputrc

评论

1赞 scuac 7/16/2021
对于 macOS,这是正确答案。只需添加它并重新启动 python 控制台,它现在将接受粘贴多行。
1赞 Merlin 11/23/2021
在 iterm 上对我不起作用
0赞 beerbajay 12/19/2021
有关更多详细信息,请参阅此自制程序问题: github.com/Homebrew/homebrew-core/issues/68193
3赞 Colin McGovern 7/27/2022
我在 Ubuntu Linux 上,它也对我有用。谢谢!
2赞 Jason 12/8/2021 #5

您正在使用交互式 shell,它一次允许在线。你可以做的是在每行之间加一个分号,就像这样 - . 或者您可以通过 control+n 创建一个新文件,您将在其中获得正常空闲状态。不要忘记在运行前保存该文件。保存 - control+s。然后从上面的菜单栏运行它 - 运行>运行模块。import sklearn as sk;import numpy as np;import matplotlib.pyplot as plt

1赞 mkrieger1 #6

我找到的解决方案是下载 Idlex 并使用其 IDLE 版本,该版本允许多行。


这最初被添加到问题的修订版 4 中。

0赞 bittahProfessional 11/25/2023 #7

我在 Windows 上通过 wsl 执行 python 代码。 对我有用的是切换到 Jupyter Notebook。很容易上手;然后使用 进行部署。 它允许将多行粘贴到每个“单元格”中,以及更多功能:pip install jupyterjupyter notebookusing Jupyter Notebook