鍍金池/ 教程/ Python/ 使用 Python 解釋器
浮點(diǎn)運(yùn)算
非正式的 Python 簡介
深入流程控制
標(biāo)準(zhǔn)庫概覽
交互式輸入行編輯歷史回溯
輸入和輸出
使用 Python 解釋器
標(biāo)準(zhǔn)庫概覽Ⅱ
錯(cuò)誤和異常
模塊
數(shù)據(jù)結(jié)構(gòu)
附錄
接下來?
激起你的興趣

使用 Python 解釋器

調(diào)用解釋器

通常 Python 的解釋器被安裝在可用的目標(biāo)機(jī)器 /usr/local/bin/python3.4 目錄下;把 /usr/local/bin 目錄放進(jìn)你的 Unix Shell 的搜索路徑里,通過輸入命令來運(yùn)行它。

python3.4

shell[1] 來說,由于安裝路徑是可以選擇的,所以也有可能安裝在其它位置,你可以與當(dāng)?shù)氐?Python 專家或者系統(tǒng)管理員聯(lián)系。(例如,/usr/local/python 就是一個(gè)受歡迎的替代位置。)

在 Windows 機(jī)器上,Python 通常安裝在 C:\Python34,但當(dāng)我們運(yùn)行安裝程序的時(shí)候可以改變它。為了把這個(gè)目錄加入到環(huán)境變量中,你需要在 DOS 窗口中鍵入如下命令行:

set path=%path%;C:\python34

輸入一個(gè)文件結(jié)束符(Unix 上是 Ctrl+D,Windows 上是 Ctrl+Z)解釋器會(huì)以 0 值退出。如果這樣沒有起作用,你可以輸入以下命令來退出:quit()

解釋器的命令行編輯功能通常并不復(fù)雜。 裝在 Unix 上的解釋器可能會(huì)有 GNU readline 庫的支持, 這樣就能夠得到更加精巧的交互編輯和歷史記錄特性。檢查命令行編輯特性是否支持的最快方式是在 Python 解釋器的第一個(gè)提示符后輸入 Ctrl-P。如果有嘟嘟聲,說明你可以使用命令后編輯功能,參閱附錄交互式輸入行編輯和歷史回溯獲得更多關(guān)于此的信息。如果任何事情也沒有發(fā)生或者只是出現(xiàn)一個(gè) ^p 字符,說明命令行編輯功能不可用,你只有用退格鍵來刪除輸入的命令。

解釋器工作起來和 Unix 的 Shell 類似:使用終端設(shè)備作為標(biāo)準(zhǔn)輸入來調(diào)用她時(shí),解釋器交互的解讀和執(zhí)行命令,通過文件名參數(shù)或以文件作為標(biāo)準(zhǔn)輸入設(shè)備時(shí),它從文件中解讀并執(zhí)行腳本。

啟動(dòng)解釋器的第二個(gè)方法是

python -c command [arg]....

這種方法可以在命令行中直接執(zhí)行語句,等同于 shell 的 -c 選項(xiàng)。因?yàn)?Python 語句通常會(huì)包括空格之類的特殊字符,所以最好把整個(gè)命令用單引號包括起來。

有些 Python 模塊也可以當(dāng)做腳本使用,它們可以用

python-m module[arg]...

的方式調(diào)用,這樣就會(huì)像你在命令行中給出其完整名字一樣運(yùn)行模塊源文件。

使用腳本文件時(shí),經(jīng)常會(huì)運(yùn)行腳本然后進(jìn)入交互模式。這也可以通過在腳本之前加上-i參數(shù)來實(shí)現(xiàn)。

參數(shù)傳遞

調(diào)用解釋器時(shí),腳本名和附加參數(shù)將變成一個(gè)字符串列表,并賦值到sys模塊的argv變量中。你可以通過執(zhí)行 import sys來訪問此列表。列表的長度至少為 1;當(dāng)沒有腳本并沒有給出參數(shù)時(shí),sys.[ 0 ]是一個(gè)空字符串。當(dāng)腳本名為 “-”(意思是標(biāo)準(zhǔn)輸入),則sys.argv [ 0 ]設(shè)置為“-” 。當(dāng)使用-c命令時(shí),sys.argv [ 0 ] 被設(shè)置為“-C”。當(dāng) -m 模塊時(shí),sys.argv [ 0 ] 被設(shè)置為完整的模塊地址名稱。-C命令或-m模塊之后發(fā)現(xiàn)選項(xiàng)不會(huì)被 Python 解釋器的選項(xiàng)處理消耗,而是由留在sys.argv中的命令或模塊來處理。

交互模式

從 tty 讀取命令時(shí),我們稱解釋器工作于交互模式。這種模式下它根據(jù)主提示符來執(zhí)行,主提示符通常標(biāo)識為三個(gè)大于括號(>>>);繼續(xù)的部分被稱為從屬提示符,由三個(gè)點(diǎn)標(biāo)識(...)。在第一行前,解釋器打印歡迎信息、版本號和授權(quán)提示。

$ python3.4  
Python 3.4 (default Mar 16 2014,09:25:04)  
[GCC 4.8.2] on linux  
Type”help”,”copyrigt”,”credits”or”license”for more information.  
>>>  

輸入多行結(jié)構(gòu)是需要從屬提示符,例如,下面舉的這個(gè)if語句。

>>> the_word_is_flat=True  
>>> if the_word_is_flat:  
...   Print(“Be careful not to fall off !”)  
...  
Be careful no to fall off !  

解釋器及其環(huán)境

源代碼編碼

默認(rèn)情況下,Python 源文件時(shí)用 UTF-8 來編碼的。在此編碼下,世界上的大多數(shù)語言的字符可以同時(shí)使用字符串、標(biāo)識符和注釋中,盡管 Python 標(biāo)準(zhǔn)庫僅使用 ASCLL 字符作為標(biāo)識符,這只是任何可移植代碼應(yīng)該遵守的約定。如果要正確顯示所有的字符,你的編輯器必須能夠識別出文件時(shí) UTF-8 編碼,并且她使用的字體能支持文件中所有的字符。

你也可以為源文件指定不同的字符編碼。為了這樣做,在#!行(首行)后插入至少一行特殊的注釋行來定義源文件的編碼。

 #—*—coding: encoding —*—

通過此聲明,源文件中所有的東西都會(huì)被當(dāng)做用 encoding 指代的 UTF-8 編碼對待。在 Python 庫參考手冊 codecs 一節(jié)中你可以找到一張可以用的編程列表。

例如,如果你的編輯器不支持 UTF-8 編碼的文件,但支持像 windows-1252 的其他一些編碼,你可以定義:

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

這樣就可以在源文件中使用 Windows-1252 字符集中的所有字符了。這個(gè)上的編碼注釋必須在文件中的第一或者第二行進(jìn)行定義。

腳注
[1] 在 Unix 系統(tǒng)中,為了不使與它同時(shí)安裝的 Python 2x 出現(xiàn)執(zhí)行沖突,Python 解釋器 3.x 不安裝,默認(rèn)執(zhí)行 python。