2. Python 解釋器?
2.1. 調(diào)用解釋器?
The Python interpreter is usually installed as /usr/local/bin/python3.12
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.12
這樣,就可以在 shell 中運(yùn)行 Python 了 1 。因?yàn)榭梢赃x擇安裝目錄,解釋器也有可能安裝在別的位置;如果還不明白,就去問(wèn)問(wèn)身邊的 Python 大神或系統(tǒng)管理員。(例如,常見備選路徑還有 /usr/local/python
。)
On Windows machines where you have installed Python from the Microsoft Store, the python3.12
command will be available. If you have
the py.exe launcher installed, you can use the py
command. See 附錄:設(shè)置環(huán)境變量 for other ways to launch Python.
在主提示符中,輸入文件結(jié)束符(Unix 里是 Control-D,Windows 里是 Control-Z),就會(huì)退出解釋器,退出狀態(tài)碼為 0。如果不能退出,還可以輸入這個(gè)命令:quit()
。
在支持 GNU Readline 庫(kù)的系統(tǒng)中,解釋器的行編輯功能包括交互式編輯、歷史替換、代碼補(bǔ)全等。檢測(cè)是否支持命令行編輯最快速的方式是,在首次出現(xiàn) Python 提示符時(shí),輸入 Control-P。聽到“嗶”提示音,說(shuō)明支持行編輯;請(qǐng)參閱附錄 交互式編輯和編輯歷史,了解功能鍵。如果沒(méi)有反應(yīng),或回顯了 ^P
,則說(shuō)明不支持行編輯;只能用退格鍵刪除當(dāng)前行的字符。
解釋器的操作方式類似 Unix Shell:用與 tty 設(shè)備關(guān)聯(lián)的標(biāo)準(zhǔn)輸入調(diào)用時(shí),可以交互式地讀取和執(zhí)行命令;以文件名參數(shù),或標(biāo)準(zhǔn)輸入文件調(diào)用時(shí),則讀取并執(zhí)行文件中的 腳本。
啟動(dòng)解釋器的另一種方式是 python -c command [arg] ...
,這與 shell 的 -c
選項(xiàng)類似,其中,command 需換成要執(zhí)行的語(yǔ)句。由于 Python 語(yǔ)句經(jīng)常包含空格等被 shell 特殊對(duì)待的字符,一般情況下,建議用單引號(hào)標(biāo)注整個(gè) command。
Python 模塊也可以當(dāng)作腳本使用。輸入:python -m module [arg] ...
,會(huì)執(zhí)行 module 的源文件,這跟在命令行把路徑寫全了一樣。
在交互模式下運(yùn)行腳本文件,只要在腳本名稱參數(shù)前,加上選項(xiàng) -i
就可以了。
命令行的所有選項(xiàng)詳見 命令行與環(huán)境。
2.1.1. 傳入?yún)?shù)?
解釋器讀取命令行參數(shù),把腳本名與其他參數(shù)轉(zhuǎn)化為字符串列表存到 sys
模塊的 argv
變量里。執(zhí)行 import sys
,可以導(dǎo)入這個(gè)模塊,并訪問(wèn)該列表。該列表最少有一個(gè)元素;未給定輸入?yún)?shù)時(shí),sys.argv[0]
是空字符串。給定腳本名是 '-'
(標(biāo)準(zhǔn)輸入)時(shí),sys.argv[0]
是 '-'
。使用 -c
command 時(shí),sys.argv[0]
是 '-c'
。如果使用選項(xiàng) -m
module,sys.argv[0]
就是包含目錄的模塊全名。解釋器不處理 -c
command 或 -m
module 之后的選項(xiàng),而是直接留在 sys.argv
中由命令或模塊來(lái)處理。
2.1.2. 交互模式?
在終端(tty)輸入并執(zhí)行指令時(shí),解釋器在 交互模式(interactive mode) 中運(yùn)行。在這種模式中,會(huì)顯示 主提示符,提示輸入下一條指令,主提示符通常用三個(gè)大于號(hào)(>>>
)表示;輸入連續(xù)行時(shí),顯示 次要提示符,默認(rèn)是三個(gè)點(diǎn)(...
)。進(jìn)入解釋器時(shí),首先顯示歡迎信息、版本信息、版權(quán)聲明,然后才是提示符:
$ python3.12
Python 3.12 (default, April 4 2022, 09:25:04)
[GCC 10.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
輸入多行架構(gòu)的語(yǔ)句時(shí),要用連續(xù)行。以 if
為例:
>>> the_world_is_flat = True
>>> if the_world_is_flat:
... print("Be careful not to fall off!")
...
Be careful not to fall off!
交互模式的內(nèi)容詳見 交互模式。
2.2. 解釋器的運(yùn)行環(huán)境?
2.2.1. 源文件的字符編碼?
默認(rèn)情況下,Python 源碼文件的編碼是 UTF-8。這種編碼支持世界上大多數(shù)語(yǔ)言的字符,可以用于字符串字面值、變量、函數(shù)名及注釋 —— 盡管標(biāo)準(zhǔn)庫(kù)只用常規(guī)的 ASCII 字符作為變量名或函數(shù)名,可移植代碼都應(yīng)遵守此約定。要正確顯示這些字符,編輯器必須能識(shí)別 UTF-8 編碼,而且必須使用支持文件中所有字符的字體。
如果不使用默認(rèn)編碼,則要聲明文件的編碼,文件的 第一 行要寫成特殊注釋。句法如下:
# -*- coding: encoding -*-
其中,encoding 可以是 Python 支持的任意一種 codecs
。
比如,聲明使用 Windows-1252 編碼,源碼文件要寫成:
# -*- coding: cp1252 -*-
第一行 的規(guī)則也有一種例外情況,源碼以 UNIX "shebang" 行 開頭。此時(shí),編碼聲明要寫在文件的第二行。例如:
#!/usr/bin/env python3
# -*- coding: cp1252 -*-
備注
- 1
Unix 系統(tǒng)中,為了不與同時(shí)安裝的 Python 2.x 沖突,Python 3.x 解釋器默認(rèn)安裝的執(zhí)行文件名不是
python
。