2017-06-20 66 views
2

如何在python REPL中編寫多行代碼? :如何在終端中使用python編寫多行代碼?

aircraftdeMacBook-Pro:~ ldl$ python 
Python 2.7.10 (default, Jul 30 2016, 19:40:32) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> 

例如樣品例如:

i = 0 

while i < 10: 
    i += 1 
    print i 

在終端不知道熱到線進料在Python殼:

我測試控制 + 輸入Shift + 輸入命令 + 輸入,他們都錯了:

>>> while i < 10: 
... print i 
    File "<stdin>", line 2 
    print i 
     ^
IndentationError: expected an indented block 
+3

它是無效的語法,所以它不會繼續提示你寫下一行。 – zhenguoli

+0

'for'應該是'while'。 – zhenguoli

+0

你爲什麼不在代碼中寫出你之前寫過的例子? –

回答

0

只需複製在終端的代碼和過去吧,然後按回車鍵。此代碼的工作完美的,如果你這樣做:

i = 0 
.. 
.. while i < 10: 
..  i += 1 
..  print(i) 
.. 

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
1

您可以添加一個尾部的反斜槓。例如,如果我想打印一個1:

>>> print 1 
1 
>>> print \ 
... 1 
1 
>>> 

如果你寫一個\,Python會提示您...(續行)的下一行輸入代碼,可以這麼說。

要解決IndentationError: expected an indented block,將下一行放在縮進塊中的while循環後面(按Tab鍵)。

因此,下面的工作:

>>> i=0 
>>> while i < 10: 
... i+=1 
... print i 
... 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
+0

當語法正確時,縮進也按預期工作。 –

1

有出來:

IndentationError: expected an indented block

所以,使用while循環時,下一行應該有縮進塊(按Tab鍵)。

>>> i = 0 
>>> while i < 10: 
...  i += 1 
...  print i 
... 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
>>> 
+0

是的,沒錯!加上一個 –