SyntaxError:编译单个语句时找到的多个语句

use*_*857 2 python syntax-error python-3.3

我在Python 3.3中,我只输入这3行:

import sklearn as sk
import numpy as np
import matplotlib.pyplot as plt
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

SyntaxError: multiple statements found while compiling a single statement
Run Code Online (Sandbox Code Playgroud)

我能做错什么?

编辑:如果有人遇到这个问题,我发现的解决方案是下载Idlex并使用其IDLE版本,它允许多行.

截图:http://imgur.com/AJSrhhD

小智 16

我有同样的问题。这在 mac 上对我有用:

echo "set enable-bracketed-paste off" >> ~/.inputrc
Run Code Online (Sandbox Code Playgroud)

  • 我使用的是 Ubuntu Linux,它也对我有用。谢谢你! (3认同)

aIK*_*Kid 12

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

>>> x = 5
y = 6
SyntaxError: multiple statements found while compiling a single statement
Run Code Online (Sandbox Code Playgroud)

你需要逐个执行它们:

>>> x = 5
>>> y = 6
>>>
Run Code Online (Sandbox Code Playgroud)

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


Evg*_*eev 7

一个(部分)实际的解决方法是将东西放入一次性函数中。

粘贴

x = 1
x += 1
print(x)
Run Code Online (Sandbox Code Playgroud)

结果是

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

    ^
SyntaxError: multiple statements found while compiling a single statement
>>>
Run Code Online (Sandbox Code Playgroud)

然而,粘贴

def abc():
  x = 1
  x += 1
  print(x)
Run Code Online (Sandbox Code Playgroud)

作品:

>>> def abc():
  x = 1
  x += 1
  print(x)
>>> abc()
2
>>>
Run Code Online (Sandbox Code Playgroud)

当然,这对于快速一次性来说是可以的,但不适用于您可能想做的所有事情等。但是,转到ipython/jupyter qtconsole可能是下一个最简单的选择。