2016-08-24 45 views
1

我剛剛拿到了一本關於編程的基本書籍。編碼語言是Python,我只試過了幾個小時,但我已經卡住了,因爲我無法弄清楚如何編寫多行代碼。例如,當我編寫print(「one」)然後按回車鍵時,它會運行它並打印單詞one。我怎樣才能讓它在下面的一行打印單詞,一個,然後是兩個單詞?另外,當我點擊標籤時,它會移動超過4個空格,等等。我不知道如何讓它不運行第一個命令,只需在下一行給我'>>>'即可。所以我想我問的是:我需要使用什麼按鍵來獲得類似的東西:輸入多行代碼以便稍後在Python中運行REPL

>>> print("one") 
>>> print("two") 

非常感謝!你可能想嘗試

(對不起,我這樣一個基本的問題,但我在這一個完全混亂。)

+1

當涉及到python有運行腳本,並在解釋器中運行命令(我希望你的書會談論這個)。看起來你正在使用像IDLE或IPython這樣的交互式解釋器。這將一次運行一行,除非你使用更復雜的語句(如果爲def func)。 – daveydave400

+0

你可以做的最好的事情之一,以獲得在這個社區良好的接待(...以及[幫助中心](http://stackoverflow.com/help)給出的其他建議)是使用標題能夠以您所問的實際問題的獨特方式準確描述您的問題。我試圖編輯以獲得這種效果。 –

+0

@ AlexanderO'Mara,...嗯。由於另一個問題的答案實際上並非特定於IDLE,我們可能應該編輯它的標題而不是暗示它們是?我可以看到它爲什麼沒有*看起來像*重複到OP,如果它出現在「做這些其他問題回答你的問題?」名單。 –

回答

1

的一件事是在文件中編寫代碼,說learning.py,然後運行該文件在與python learning.py的命令行上。

2

Python REPL只要完全鍵入就自動執行每個命令。這就是爲什麼它被稱爲「讀取評估打印循環」的原因。它接受一個輸入,對其進行評估,然後打印結果。

如果你想同時執行兩個完整的命令,你可以把一個分號之間,就像這樣:

print("one"); print("two") 

我說:「完全輸入」上面,因爲某些命令本身需要多條線路,所以在命令「完全輸入」之前,Python必須接受多行輸入。三種類型的命令工作如下:流控制命令(def,whileiffor等,適用於它們下面的幾個縮進行),多行表達式(括號內或括號內的計算)或使用反斜槓的語句(\)以指示它在下一行繼續。所以如果你輸入下面的任何一個塊,Python會在評估之前等待塊完全完成。

if 1 + 1 == 2: 
    print "True" 
else: 
    print "False" 

print(
    1 + 1 
) 

print \ 
    1 + 1 

您也可以結合這兩種策略,並鍵入是這樣的:

print("one"); \ 
print("two") 

Python會等待所有命令鍵入,然後在運行一次他們倆。但我從來沒有見過任何人以這種方式編寫代碼。

或者,您可以在不同的文本編輯器中一起鍵入幾個命令,然後將它們粘貼到Python REPL中,例如將以下內容複製並粘貼到REPL中(但您會在命令之間打印結果):

print("one") 
print("two") 

或者,您可能幾乎可以準確地獲得您最初期望的行爲,即使用不同的Python接口。 IPython Notebook是一個不錯的選擇,或者您可以嘗試Spyder或PyCharm編輯器,它們讓您選擇幾行代碼並運行它們。

或者,如果您想要一次運行所有腳本的較長腳本,最好的方法是將其輸入到文本文件(例如script.py)中,然後告訴python運行它,例如,從系統命令提示符(不是Python解釋器)輸入python script.py,或在IDLE編輯器中按F5。

0

在python中使用「控制檯」感覺獲得更好的多行命令支持的最好方法是使用ipython qtconsole或Jupyter qtconsole,它現在稱爲:http://jupyter.org/qtconsole/stable/。使用qtconsole時,即使不是複雜塊,按下Ctrl-Enter也會延遲命令運行。您可以多次按Ctrl-Enter,然後按Enter鍵全部運行它們。然後點擊箭頭將再次調出整個塊進行編輯,不像普通的ipython控制檯那樣乾淨地縮進。

注意:這是而不是 ipython筆記本,也不是普通的ipython控制檯,而是使用相同內核的一個單獨的東西。 qtconsole還有其他一些很好的功能,比如與終端相比,更好的語法高亮和內聯繪圖功能。

+0

Downvoter,care解釋? –

相關問題