2010-05-09 29 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中輸入一個空行才能完成當前塊,然後才能輸入新的不縮進的代碼行。

相關問題