Python抛出一个随机的无效语法错误

时间:2013-09-13 19:35:26

标签: python

版本: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 个答案:

答案 0 :(得分:4)

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

这里方便的经验法则是,您无法使用ifdefclassforwhile开始新的阻止, withtry,除非您有>>>提示。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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