我正在尝试在Python 3.1控制台中运行此代码段并且我收到了SyntaxError:
>>> while True:
... a=5
... if a<6:
... break
... print("hello")
File "<stdin>", line 5
print("hello")
^
SyntaxError: invalid syntax
>>>
(这只是为了说明问题而缩短的代码。)
我错过了什么吗?还有其他魔法我不知道吗?
答案 0 :(得分:9)
您必须在REPL中输入一个空行才能完成当前程序段,然后才能输入新的,未缩进的代码行。
答案 1 :(得分:7)
如果你将整个事情放在一个函数中,它是有效的:
def test():
while True:
a=5
if a<6:
break
print("hello")
如果你试图在函数之外(仅在解释器中)执行它,它不知道如何评估整个事情,因为它只能在解释器中一次处理一个语句。你的while
循环就是这样一个声明,你的print
东西就是这样的声明,你有两个声明,但解释器只有一个。