2

版本:Python 3.3.2(默认,2013 年 9 月 11 日,20:16:42)

嘿,我正在用 python 做一些测试,稍微摆弄一下 shell,但我得到了一个奇怪的错误。

>>> a = 5
>>> if a > 0:  
...     print("a is a positive number.")
... if a < 0:
  File "<stdin>", line 3
    if a < 0:
     ^
SyntaxError: invalid syntax

我不知道为什么会出现这个错误。我知道我可以使用 elif 或其他,但我只是想测试一下。帮助?

4

4 回答 4

4

当它位于模块中时,这是有效的 Python 语法,但在交互式解释器中,您需要用空行分隔代码块。

这里方便的经验法则是,除非您有提示,否则您不能使用if, def, class, for, while,with或开始新块。try>>>

于 2013-09-13T19:39:57.070 回答
0

REPL 仍在处理之前的代码块。单独输入一个空行以首先终止它。

于 2013-09-13T19:36:59.997 回答
0

你的print语句后需要一个空行,Python 解释器认为你正在继续一个块,直到你这样做,所以你的第二个if语句出现缩进错误。这不是“无效的”,交互式解释器旨在以这种方式工作。

于 2013-09-13T19:37:36.063 回答
0

您是否按退格键输入第二个if?贝壳不喜欢这样。它期待逻辑块中的另一行,或者能够执行该块(通过再次按回车键)。shell一次只能执行一个块,即先完成第if一个,然后可以进入第二个if。您可以使用elif它,因为它仍被视为同一逻辑块的一部分。

于 2013-09-13T19:42:05.363 回答