2. 使用 Python 直譯器

2.1. 啟動直譯器

The Python interpreter is usually installed as /usr/local/bin/python3.5 on those machines where it is available; putting /usr/local/bin in your Unix shell’s search path makes it possible to start it by typing the command:

python3.5

能啟動 Python [1]。因為直譯器存放的目錄是個安裝選項,其他的目錄也是有可能的;請洽談在地的 Python 達人或者系統管理員。(例如:/usr/local/python 是個很常見的另類存放路徑。)

On Windows machines, the Python installation is usually placed in C:\Python35, though you can change this when you’re running the installer. To add this directory to your path, you can type the following command into the command prompt in a DOS box:

set path=%path%;C:\python35

在主提示符輸入一個 end-of-file 字元(在 Unix 上為 Control-D;在 Windows 上為 Control-Z)會使得直譯器以零退出狀況 (zero exit status) 離開。如果上述的做法沒有效,也可以輸入指令 quit() 離開直譯器。

直譯器的指令列編輯功能有很多,在支援 readline 函式庫的系統上包含:互動編輯、歷史取代、指令補完等功能。最快檢查有無支援 readline 的方法為在第一個 Python 提示符後輸入 Control-P,如果出現嗶嗶聲,就代表有支援;見附錄 交互式编辑和编辑历史 介紹相關的快速鍵。如果什麼事沒有發生,或者出現一個 ^P,就代表並沒有這指令列編輯功能;此時只能使用 backspace 去除該行的字元。

這個直譯器使用起來像是 Unix shell:如果它被呼叫時連結至一個 tty 裝置,它會互動式地讀取並執行指令;如果被呼叫時給定檔名為引數或者使用 stdin 傳入檔案內容,它會將這個檔案視為腳本來閱讀。

另一個起動直譯器的方式為 python -c command [arg] ...,它會執行在 command 裡的指令(們),行為如同 shell 的 -c 選項。因為 Python 的指令包含空白等 shell 用到的特殊字元,通常建議用單引號把 command 包起來。

有些 Python 模組使用上如腳本般一樣方便。透過 python -m module [arg] ... 可以執行 module 模組的原始碼,就如同直接傳入那個模組的完整路徑一樣的行為。

當要執行一個腳本檔時,有時候會希望在腳本結束時進入互動模式。此時可在執行腳本的指令加入 -i

所有指令可用的參數都詳記在命令行与环境

2.1.1. 傳遞引數

當直擇器收到腳本的名稱和額外的引數後,他們會轉換為由字串所組成的 list(串列)並指派給 sys 模組的 argv 變數。你可以執行 import sys 取得這個串列。這個串列的長度至少為一;當沒有給任何腳本名稱和引數時, sys.argv[0] 為空字串。當腳本名為 '-'(指標準輸入)時, sys.argv[0]'-'。當使用 -c command 時, sys.argv[0]'-c'。當使用 -m module 時, sys.argv[0] 為該模組存在的完整路徑。其餘非 -c command-m module 的選項不會被 Python 直譯器吸收掉,而是留在 sys.argv 變數中給後續的 command 或 module 使用。

2.1.2. 互動模式

在终端(tty)输入并执行指令时,我们说解释器是运行在 交互模式(interactive mode)。在这种模式中,它会显示 主提示符(primary prompt),提示输入下一条指令,通常用三个大于号(>>>)表示;连续输入行的时候,它会显示 次要提示符,默认是三个点(...)。进入解释器时,它会先显示欢迎信息、版本信息、版权声明,然后就会出现提示符:

$ python3.5
Python 3.5 (default, Sep 16 2015, 09:25:04)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

接續多行的情況出現在需要多行才能建立完整指令時。舉例來說,像是 if 敘述:

>>> the_world_is_flat = True
>>> if the_world_is_flat:
...     print("Be careful not to fall off!")
...
Be careful not to fall off!

更多有關互動模式的使用,請見互動模式

2.2. 直譯器與它的環境

2.2.1. 原始碼的字元編碼 (encoding)

預設 Python 原始碼檔案的字元編碼使用 UTF-8。在這個編碼中,世界上多數語言的文字可以同時被使用在字串內容、識別名 (identifier) 及註解中 — 雖然在標準函式庫中只使用 ASCII 字元作為識別名,這也是個任何 portable 程式碼需遵守的慣例。如果要正確地顯示所有字元,您的編輯器需要能夠認識檔案為 UTF-8,並且需要能顯示檔案中所有字元的字型。

It is also possible to specify a different encoding for source files. In order to do this, put one more special comment line right after the #! line to define the source file encoding:

# -*- coding: encoding -*-

With that declaration, everything in the source file will be treated as having the encoding encoding instead of UTF-8. The list of possible encodings can be found in the Python Library Reference, in the section on codecs.

For example, if your editor of choice does not support UTF-8 encoded files and insists on using some other encoding, say Windows-1252, you can write:

# -*- coding: cp-1252 -*-

and still use all characters in the Windows-1252 character set in the source files. The special encoding comment must be in the first or second line within the file.

註解

[1]在 Unix 中,Python 3.x 直譯器預設安裝不會以 python 作為執行檔名稱,以避免與 現有的 Python 2.x 執行檔名稱衝突。