2. 使用 Python 解釋器
2.1. 調(diào)用 Python 解釋器
Python 解釋器通常被安裝在目標機器的?/usr/local/bin/python3.5?目錄下。將?/usr/local/bin?目錄包含進 Unix shell 的搜索路徑里,以確??梢酝ㄟ^輸入:
python3.5
命令來啟動他。[1]?由于 Python 解釋器的安裝路徑是可選的,這也可能是其它路徑,你可以聯(lián)系安裝 Python 的用戶或系統(tǒng)管理員確認(例如,/usr/local/python?就是一個常見的選擇)。
在 Windows 機器上,Python 通常安裝在?C:\Python35?位置,當然你可以在運行安裝向?qū)r修改此值。要想把此目錄添加到你的 PATH 環(huán)境變量中,你可以在 DOS 窗口中輸入以下命令:
setpath=%path%;C:\python35
通常你可以在主窗口輸入一個文件結(jié)束符(Unix 系統(tǒng)是?Control-D,Windows 系統(tǒng)是?Control-Z)讓解釋器以 0 狀態(tài)碼退出。如果那沒有作用,你可以通過輸入?quit()?命令退出解釋器。
Python 解釋器具有簡單的行編輯功能。在 Unix 系統(tǒng)上,任何 Python 解釋器都可能已經(jīng)添加了 GNU readline 庫支持,這樣就具備了精巧的交互編輯和歷史記錄等功能。在 Python 主窗口中輸入 Control-P 可能是檢查是否支持命令行編輯的最簡單的方法。如果發(fā)出嘟嘟聲(計算機揚聲器),則說明你可以使用命令行編輯功能;更多快捷鍵的介紹請參考?交互式輸入行編輯歷史回溯。如果沒有任何聲音,或者顯示?^P?字符,則說明命令行編輯功能不可用;你只能通過退格鍵從當前行刪除已鍵入的字符并重新輸入。
Python 解釋器有些操作類似 Unix shell:當使用終端設(shè)備(tty)作為標準輸入調(diào)用時,它交互的解釋并執(zhí)行命令;當使用文件名參數(shù)或以文件作為標準輸入調(diào)用時,它讀取文件并將文件作為?腳本?執(zhí)行。
第二種啟動 Python 解釋器的方法是?python?-c?command?[arg]?...,這種方法可以在?命令行?執(zhí)行 Python 語句,類似于 shell 中的?-c?選項。由于 Python 語句通常會包含空格或其他特殊 shell 字符,一般建議將?命令?用單引號包裹起來。
有一些 Python 模塊也可以當作腳本使用。你可以使用?python?-m?module?[arg]?...?命令調(diào)用它們,這類似在命令行中鍵入完整的路徑名執(zhí)行?模塊?源文件一樣。
使用腳本文件時,經(jīng)常會運行腳本然后進入交互模式。這也可以通過在腳本之前加上?-i?參數(shù)來實現(xiàn)。
2.1.1. 參數(shù)傳遞
調(diào)用解釋器時,腳本名和附加參數(shù)傳入一個名為?sys.argv?的字符串列表。你能夠獲取這個列表通過執(zhí)行?import?sys,列表的長度大于等于1;沒有給定腳本和參數(shù)時,它至少也有一個元素:sys.argv[0]?此時為空字符串。腳本名指定為?'-'?(表示標準輸入)時,?sys.argv[0]?被設(shè)定為?'-',使用?-c?指令?時,sys.argv[0]?被設(shè)定為?'-c'。使用?-m?模塊?參數(shù)時,sys.argv[0]?被設(shè)定為指定模塊的全名。-c?指令?或者?-m?模塊?之后的參數(shù)不會被 Python 解釋器的選項處理機制所截獲,而是留在?sys.argv?中,供腳本命令操作。
2.1.2. 交互模式
從 tty 讀取命令時,我們稱解釋器工作于?交互模式。這種模式下它根據(jù)主提示符來執(zhí)行,主提示符通常標識為三個大于號(>>>);繼續(xù)的部分被稱為?從屬提示符,由三個點標識(...)。在第一行之前,解釋器打印歡迎信息、版本號和授權(quán)提示:
$ python3.5Python 3.5.2 (default, Mar 16 2014, 09:25:04)[GCC 4.8.2] on linuxType "help", "copyright", "credits" or "license" for more information.>>>
輸入多行結(jié)構(gòu)時需要從屬提示符了,例如,下面這個?if?語句:
>>> the_world_is_flat=1>>> ifthe_world_is_flat:... print("Be careful not to fall off!")...Be careful not to fall off!
關(guān)于交互模式更多的內(nèi)容,請參見?交互模式。
2.2. 解釋器及其環(huán)境
2.2.1. 源程序編碼
默認情況下,Python 源文件是 UTF-8 編碼。在此編碼下,全世界大多數(shù)語言的字符可以同時用在字符串、標識符和注釋中 — 盡管 Python 標準庫僅使用 ASCII 字符做為標識符,這只是任何可移植代碼應(yīng)該遵守的約定。如果要正確的顯示所有的字符,你的編輯器必須能識別出文件是 UTF-8 編碼,并且它使用的字體能支持文件中所有的字符。
你也可以為源文件指定不同的字符編碼。為此,在?#!?行(首行)后插入至少一行特殊的注釋行來定義源文件的編碼:
# -*- coding: encoding -*-
通過此聲明,源文件中所有的東西都會被當做用?encoding?指代的 UTF-8 編碼對待。在 Python 庫參考手冊?codecs?一節(jié)中你可以找到一張可用的編碼列表。
例如,如果你的編輯器不支持 UTF-8 編碼的文件,但支持像 Windows-1252 的其他一些編碼,你可以定義:
# -*- coding: cp-1252 -*-
這樣就可以在源文件中使用 Windows-1252 字符集中的所有字符了。這個特殊的編碼注釋必須在文件中的?第一或第二?行定義。
Footnotes
[1]在 Unix 系統(tǒng)上,Python 3.X 解釋器默認未被安裝成名為?python?的命令,所以它不會與同時安裝在系統(tǒng)中的 Python 2.x 命令沖突。