2010-05-09 64 views
4

我试图运行这个片段在Python 3.1控制台,我得到语法错误:为什么Python 3.1在循环打印时抛出SyntaxError?

>>> while True: 
...  a=5 
...  if a<6: 
...    break 
... print("hello") 
    File "<stdin>", line 5 
    print("hello") 
     ^
SyntaxError: invalid syntax 
>>> 

(这仅仅是缩短了代码,使一个点。)

我缺少的东西?还有其他一些我不知道的魔术吗?

回答

7

它的工作,如果你把整个事情的功能:

def test(): 
    while True: 
     a=5 
     if a<6: 
      break 
    print("hello") 

如果你尝试做一个函数(只是在解释器)以外,它不知道如何evaulate整件事,因为它只能在解释者中一次处理一个陈述。你的while循环就是这样一种说法,你的东西就是这样一种说法,例如你有两个陈述,但是解释者只有一个陈述。

+0

嗯,不知道它只能处理一个语句 - 它使感觉!谢谢! :) – bubersson 2010-05-09 10:51:24

9

您必须在REPL中输入一个空行才能完成当前块,然后才能输入新的不缩进的代码行。

相关问题