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