2. 使用 Python 直譯器¶
2.1. 啟動直譯器¶
Python 解释器在其被使用的机器上通常安装为 /usr/local/bin/python3.8
;将 /usr/local/bin
加入你的 Unix 终端的搜索路径就可以通过键入以下命令来启动它:
python3.8
能啟動 Python 1。因為直譯器存放的目錄是個安裝選項,其他的目錄也是有可能的;請洽談在地的 Python 達人或者系統管理員。(例如:/usr/local/python
是個很常見的另類存放路徑。)
在 Windows 机器上当你从 Microsoft Store 安装 Python 之后,python3.8
命令将可使用。 如果你安装了 py.exe 启动器,你将可以使用 py
命令。 参阅 附录:设置环境变量 了解其他启动 Python 的方式。
在主提示符輸入一個 end-of-file 字元(在 Unix 上為 Control-D;在 Windows 上為 Control-Z)會使得直譯器以零退出狀況 (zero exit status) 離開。如果上述的做法沒有效,也可以輸入指令 quit()
離開直譯器。
在支持 GNU Readline 库的系统中,解释器的行编辑功能包括交互式编辑、历史替换、代码补全等。检测是否支持命令行编辑最快速的方式是,在首次出现 Python 提示符时,输入 Control-P。听到“哔”提示音,说明支持行编辑;请参阅附录 交互式编辑和编辑历史,了解功能键。如果没有反应,或回显了 ^P
,则说明不支持行编辑;只能用退格键删除当前行的字符。
這個直譯器使用起來像是 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) 中运行。在这种模式中,会显示 主提示符,提示输入下一条指令,主提示符通常用三个大于号(>>>
)表示;输入连续行时,显示 次要提示符,默认是三个点(...
)。进入解释器时,首先显示欢迎信息、版本信息、版权声明,然后才是提示符:
$ python3.8
Python 3.8 (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,並且需要能顯示檔案中所有字元的字型。
如果不使用默认编码,则要声明文件的编码,文件的 第一 行要写成特殊注释。句法如下:
# -*- coding: encoding -*-
其中,encoding 可以是 Python 支持的任意一种 codecs
。
比如,声明使用 Windows-1252 编码,源码文件要写成:
# -*- coding: cp1252 -*-
第一行 的规则也有一种例外情况,源码以 UNIX "shebang" 行 开头。此时,编码声明要写在文件的第二行。例如:
#!/usr/bin/env python3
# -*- coding: cp1252 -*-
註解
- 1
在 Unix 中,Python 3.x 直譯器預設安裝不會以
python
作為執行檔名稱,以避免與 現有的 Python 2.x 執行檔名稱衝突。