如何在Python解釋器中編寫超過1行的程式碼?

如何在Python解釋器中編寫超過1行的程式碼?

我在終端機中編碼 Python 時遇到問題。我只是學習基礎知識,所以不需要創建 .py 檔案。

在終端機中,我可以在 Python 解釋器中運行一行程式碼,但是如何編寫多行程式碼呢?

顯然,如果我按 Enter 鍵,它會輸入命令並且不會向下一行。

我只想在終端機中測試以下內容:

my_age = 35
my_eyes = 'Blue'
print "my age is %d and my eye color is %s" % (my_age, my_eyes)

答案1

加入尾部反斜線 ( \)

訣竅是——例如,類似於您在 中所做的bash——添加尾部反斜杠。例如,如果我想列印1

charon:~ werner$ python
>>> print 1
1
>>> print \
... 1
1
>>> 

如果你寫一個\,Python 會提示你...(連續行)在下一行輸入程式碼,可以這麼說。

附註:這是當您建立函數或類別定義時自動發生的事情,即當您真正需要一條新線,所以從來沒有真正好的用途,或者至少據我所知沒有。換句話說,Python 足夠聰明,能夠意識到當您輸入新函數定義或其他類似結構(例如if:)時需要續行。在這些自動情況下,請注意您需要輸入一個空白行來\告訴 Python 您已完成。

對於其他一切,您需要一行又一行地編寫。解釋器的工作方式是,它會解釋您輸入的每一行。不多也不少。它只會在看到換行符時“採取行動”,從而告訴解釋器執行您給它的內容。單一反斜線將阻止解釋器接收換行符(即它不會知道您實際上按下了Enter),但它最終會接收一個換行符。

Python是直譯器有先進的能力當您使用 GNU readline(例如 Emacs 或 vi 樣式鍵綁定)在行內導航時(例如Ctrl-A)。然而,這些僅在當前一行中起作用。歷史也在那裡,只需嘗試按 即可

如果我想一遍又一遍地運行複雜的線條怎麼辦?

如果您想一次執行多行程式碼,您可能需要使用正確的原始檔案。

或者,使用Jupyter 筆記本,它提供了一種使用內建解釋器創建 Python 程式碼的絕佳互動方式。您可以像在原始程式碼編輯器中一樣編寫程式碼,但可以選擇一起解釋哪些行。然後,您可以選擇性地僅運行部分程式碼。最好的方法是嘗試看看這是否適合您的工作流程。

答案2

使用怎麼樣;\?分號表示指令結束,反斜線表示我們將繼續下一行。例如,python在命令列輸入進入Python解釋器,然後

>>> x=0 ;\
... print(x) ;\
... x=4 ;\
... print(x)

應該給出輸出

0
4

答案3

我只是在瀏覽你得到的答案。

print("more string") ; print(3)

這會給你一個結果

more string

3

沒有任何錯誤

我剛剛使用了“;”讓它寫在另一行

我希望我的回答可以幫助你

答案4

我剛剛在 shell 提示字元下輸入了以下內容,效果很好:

$ python
Python 2.7.3 (default, Aug  1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> my_age = 35
>>> my_eyes = 'Blue'
>>> print "my age is %d and my eye color is %s" % (my_age, my_eyes)
my age is 35 and my eye color is Blue
>>> 

在互動式 Python 解譯器中鍵入多行程式碼的方法就是在互動式 Python 解譯器中鍵入多行程式碼。我認為這足以滿足您的目的。

確實,您會在每行之後收到一個新提示,這意味著如果您的兩行程式碼產生輸出,則該輸出將由提示分隔。我想這就是您所關心的,儘管您問題中的示例並未表明:

$ python
Python 2.7.3 (default, Aug  1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "first line"
first line
>>> print "second line"
second line
>>> 

如果這是一個問題,您可以將多個語句包含在一個(正確縮排!)if語句中:

$ python
Python 2.7.3 (default, Aug  1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> if 1:
...     print "first line"
...     print "second line"
... 
first line
second line
>>> 

(我建議,即使它沒有回答你的問題,如果你正在編寫足夠複雜的程式碼,這很重要,你應該編寫腳本。也許你已經開始這樣做了一年半因為你發布了這個問題。)

相關內容