为什么我在IF语句之后立即在Python REPL中收到无效的语法错误?

Nae*_*mul 5 python read-eval-print-loop

我认为这是完全有效的.

if False:
    print(1)
print(2)
Run Code Online (Sandbox Code Playgroud)

但是,它在Python REPL中给出了无效的语法错误.

为什么?

在此输入图像描述

在Python 3.6.5(x64),Windows 10 RS4上

the*_*eye 5

正如 user2357112 所指出的,这种行为在https://docs.python.org/3/tutorial/introduction.html#first-steps-towards-programming 中有解释,

循环体是缩进的:缩进是 Python 对语句进行分组的方式。在交互式提示下,您必须为每个缩进的行键入一个制表符或空格。在实践中,您将使用文本编辑器为 Python 准备更复杂的输入;所有体面的文本编辑器都有自动缩进功能。当以交互方式输入复合语句时,它后面必须跟一个空行以表示完成(因为解析器无法猜测您何时输入了最后一行)。请注意,基本块中的每一行都必须缩进相同的数量。