如何通過命令列執行 Python 程式碼

    閱讀 6:01·字數 1808·發佈 
    Youtube 頻道
    訂閱 130

    本節講述的是通過命令列執行 Python 程式碼,至於如何執行檔案形式的 Python 腳本,你可以檢視如何通過命令列執行 Python 腳本檔案,模組,套件一節。

    通過命令列執行 Python 程式碼

    在命令列中輸入pythonpython3(或者指向 Python 的一些別名)並使用-c參數,然後給出需要執行的 Python 程式碼,按下Enter後這些程式碼將被執行。

    Windows
    python -c <command>
    UNIX/Linux/macOS
    python3 -c <command>
    command 參數值

    command參數值所表示的 Python 程式碼,可以是單行或多行的,其中多行效果需要通過換行字元來實作。在不同的命令列應用中,換行字元的表述可能不同,比如,在 PowerShell 中換行字元可表述為`n

    command中的特殊字元需要進行逸出,比如,雙引號中的雙引號,單引號中的單引號,這需要根據具體的命令列應用來確定。當然,對於 Python 字串包含的特殊字元,依然可以使用\進行逸出,如果\本身是命令列的特殊字元,則應視具體情況決定是否首先逸出\

    另外,單行程式碼可以通過;組合多條陳述式,多行程式碼中每一行開頭的縮排與py檔案的縮排含義相同。

    逸出特殊字元

    想要了解命令列中的逸出,你可以檢視程式設計指南如何在命令列中逸出特殊字元一節。

    PowerShell 中,我們簡單的使用程式碼輸出一段訊息。

    # PowerShell
    python -c "print('通過命令列執行程式碼!')"
    通過命令列執行程式碼!

    依然是在 PowerShell 中,下面的程式碼將變數ab的指派陳述式,通過;合併為一行,而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 互動模式視為一種命令列的實作,使用他就如同在編寫一個 Python 模組,可用於演示,教學或驗證某個想法。

    在進入 Python 的互動模式後,你可以簡單的輸入 Python 程式碼,然後按下Enter來執行他,如果存在可供顯示的結果,那麽這些結果將展現在互動模式中。比如,某個變數或函式的傳回值。

    當輸入的程式碼沒有完整到足以正常執行時,互動模式會要求補充剩余的程式碼,你可以在未輸入任何字元的情況下,再次按下Enter來執行之前所有的輸入。如果希望書寫一個空白行而不是結束輸入,那麽在按下Enter之前需要書寫至少一個空白字元(比如,一個空格)。

    下面,我們使用input函式要求使用者輸入姓名,並通過if陳述式判斷輸入是否為空。

    name = input('請輸入姓名:')
    請輸入姓名:…Enter
    if not name:
    ... print('沒有姓名?!')
    ...…Enter
    沒有姓名?!

    如何進入 Python 互動模式?

    對於 Windows 作業系統,在命令列輸入python後即可進入 Python 互動模式,對於 UNIX/Linux/macOS 系統,則需要輸入python3。當然,除了pythonpython3,你也可以使用其他指向了 Python 的別名。

    如何結束 Python 互動模式?

    對於 Windows 系統,在 Python 互動模式中先後按下Ctrl+ZEnter,將結束互動模式,對於 UNIX/Linux/macOS 系統,只需按下Ctrl+D即可。

    如果site模組在 Python 啟動時被匯入,那麽,在互動模式中輸入exit()quit()同樣可以結束互動模式。事實上,匯入site模組是預設的,除非你使用_pth檔案覆寫了 Python 模組搜尋路徑,並且未在_pth中書寫有效(不是註解)的import site

    覆寫搜尋路徑

    要取得關於_pth檔案的資訊,你可以檢視Python 指南如何使用 _pth 檔案覆寫 Python 模組搜尋路徑一節。

    模組搜尋路徑

    想要了解 Python 的模組搜尋路徑,你可以檢視Python 指南Python 模組搜尋路徑介紹,Python 模組搜尋路徑中的目錄有哪些一節。