如何通過命令列執行 Python 程式碼
訂閱 480
本節講述的是通過命令列執行 Python 程式碼,至於如何執行檔案形式的 Python 腳本,你可以檢視如何通過命令列執行 Python 腳本檔案,模組,套件一節。
通過命令列執行 Python 程式碼
在命令列中輸入python或python3(或者指向 Python 的一些別名)並使用-c參數,然後給出需要執行的 Python 程式碼,按下Enter後這些程式碼將被執行。
python -c <command>python3 -c <command>- command 參數值
command參數值所表示的程式碼,可以是單行或多行的,其中多行效果需要通過換行字元來實作。在不同的命令列應用中,換行字元的表述可能不同,比如,在 PowerShell 中換行字元可表述為`n。command中的特殊字元需要進行跳脫,比如,雙引號中的雙引號,單引號中的單引號,這需要根據具體的命令列應用來確定。當然,對於 Python 字串包含的特殊字元,依然可以使用\進行跳脫,如果\本身是命令列的特殊字元,則應視具體情況決定是否首先跳脫\。另外,單行程式碼可以通過
;組合多條陳述式,多行程式碼中每一行開頭的縮排與py檔案的縮排含義相同。
跳脫特殊字元
想要了解命令列中的跳脫,你可以檢視程式設計指南的如何在命令列中跳脫特殊字元一節。
在 PowerShell 中,我們簡單的使用程式碼輸出一段訊息。
# PowerShell
python -c "print('通過命令列執行程式碼!')"
通過命令列執行程式碼!依然是在 PowerShell 中,下面的程式碼將變數a和b的指派陳述式,通過;合併為一行,而if陳述式則通過`n被劃分為多行,print函式前面的空白字元不能省略,否則會出現語法錯誤。
# PowerShell
python -c "a = int(input('A = '));b = int(input('B = '))`nif a > b:`n print('A 大於 B')`nelse: print('A 小於 B')"
A = 1
B = 3
A 小於 B如果希望在 PowerShell 的雙引號中使用雙引號,那麽需要使用`"進行跳脫,正如下面所示的第一行程式碼。至於程式碼的另一行,雖然中間的兩個單引號不需要針對 PowerShell 跳脫,但他們處於 Python 的單引號字串中,因此使用 Python 跳脫字元\進行跳脫。
# PowerShell
python -c "print('傑瑞說:`"跳脫 PowerShell 雙引號中的雙引號`"')"
傑瑞說:"跳脫 PowerShell 雙引號中的雙引號"
python -c "print('傑瑞說:\'跳脫 Python 單引號中的單引號\'')"
傑瑞說:'跳脫 Python 單引號中的單引號'在 UNIX/Linux/macOS 系統中,Shell 程式的跳脫字元一般是\,在書寫\\t後,\\t會被命令列跳脫為\t,而\t將被 Python 跳脫為定位字元。在書寫\\\\後,\\\\會被命令列跳脫為\\,而\\將被 Python 跳脫為\。
# UNIX/Linux/macOS
python3 -c "print('傑瑞說:\\t跳脫 Python 跳脫字元\\\\')"
傑瑞說: 跳脫 Python 跳脫字元\在互動模式中執行 Python 程式碼
什麽是 Python 互動模式?
你可以將互動模式視為一種命令列的實作,使用他就如同在編寫一個 Python 模組,可用於示範,教學或驗證某個想法。
在進入互動模式後,你可以簡單的輸入程式碼,然後按下Enter來執行他,如果存在可供顯示的結果,那麽這些結果將展現在互動模式中。比如,某個變數或函式的傳回值。
當輸入的程式碼沒有完整到足以正常執行時,互動模式會要求補充剩余的程式碼,你可以在未輸入任何字元的情況下,再次按下Enter來執行之前所有的輸入。如果希望書寫一個空白行而不是結束輸入,那麽在按下Enter之前需要書寫至少一個空白字元(比如,一個空格)。
下面,我們使用input函式要求使用者輸入姓名,並通過if陳述式判斷輸入是否為空。
name = input('請輸入姓名:')
請輸入姓名:…Enter
if not name:
... print('沒有姓名?!')
...…Enter
沒有姓名?!如何進入 Python 互動模式?
對於 Windows 作業系統,在命令列輸入python後即可進入互動模式,對於 UNIX/Linux/macOS 系統,則需要輸入python3。當然,除了python和python3,你也可以使用其他指向了 Python 的別名。
如何結束 Python 互動模式?
對於 Windows 系統,在互動模式中先後按下Ctrl+Z和Enter,將結束互動模式,對於 UNIX/Linux/macOS 系統,只需按下Ctrl+D即可。
如果site模組在 Python 啟動時被匯入,那麽,在互動模式中輸入exit()或quit()同樣可以結束互動模式。事實上,匯入site模組是預設的,除非你使用_pth檔案覆寫了模組搜尋路徑,並且未在_pth中書寫有效(不是註解)的import site。
覆寫搜尋路徑
要取得關於_pth檔案的資訊,你可以檢視Python 指南的如何使用 _pth 檔案覆寫 Python 模組搜尋路徑一節。
模組搜尋路徑
想要了解 Python 的模組搜尋路徑,你可以檢視Python 指南的Python 模組搜尋路徑介紹,模組搜尋路徑中的目錄有哪些一節。