Why is Python 3.1 throwing a SyntaxError when printing after loop?
I'm trying to run this snippet in Python 3.1 console and I'm getting SyntaxError:
>>> while True:
... 开发者_Go百科 a=5
... if a<6:
... break
... print("hello")
File "<stdin>", line 5
print("hello")
^
SyntaxError: invalid syntax
>>>
(This is just shortened code to make a point.)
Am I missing something? Is there some other Magic I don't know about?
You have to input an empty line into the REPL to complete the current block before you can enter a new, unindented line of code.
It's working, if you put the whole thing in a function:
def test():
while True:
a=5
if a<6:
break
print("hello")
If you try to do it outside a function (just in the interpreter), it does not know how to evaulate the whole thing, since it can only handle one statement at a time in the interpreter. Your while
loop is such a statement, and your print
stuff is such a statement, such you have two statements, but the interpreter takes only one.
精彩评论