[譯]The Python Tutorial#Using the Python Interpreter
2.1 Invoking the Interpreter
Python解釋器通常安裝在目標機器的/usr/local/bin/python3.6
目錄下;將/usr/local/bin
設置到Unix shell的搜索路徑中,就可以使用以下命令:
python3.6
啟動Python解釋器[1]。由于Python的安裝路徑是可選的,其他目錄也是可能的;可以咨詢Python安裝用戶或者系統管理員確認。(例如/usr/local/python
是常見的可選目錄。)
Window機器上,Python通常安裝在C:\Python36
目錄,可是也可以在安裝過程中改變安裝路徑。可以在DOS中輸入以下命令來將安裝目錄加入環境變量:
set path=%path%;C:\python36
在主提示符后輸入文件結束符(Unix中是Control-D
,Windows中是Control-Z
)將導致解釋器以0狀態退出。如果不起作用,可以使用quit()
命令來退出解釋器。
解釋器的行編輯特性在支持逐行讀取系統上的包括交互式編輯,歷史替換以及代碼補全。檢測是否支持命令行編輯的最快方法是在Python解釋器的第一個提示符處輸入Control-P
,如果電腦發出嗶嗶聲音,則支持命令行編輯;參考附錄 Interactive Input Editing and History Substitution獲取對鍵的介紹。如果什么也沒有發生,或者^P
重復輸出,則不支持命令行編輯;只能使用退格鍵移除當前行的字符。
Python解釋器與Unix shell有些類似:當連接終端設備使用標準輸入時,解釋器交互讀取和執行命令;當使用文件名參數或者文件作為標準輸入時,解釋器從文件中讀取并執行腳本。
另一種啟動Python解釋器的命令是:python -c command [arg]...
,可在命令行直接執行語句,類似shell的 -c 選項。由于Python語句通常包含空格或者其他對于shell而言的特殊字符,通常建議使用單引號講整個命令引用起來。
一些Python模塊作為腳本也是很有用的。這些模塊可以使用python -m module [args]..
來調用,該命令執行module的源文件,就像在命令行輸入其完整路徑名調用一樣。
當執行腳本文件時,有時候需要在運行腳本之后進入交互模式。可是在腳本之前加上 -i 來實現。
Command line and environment 中有關于所有命令行選項的描述。
2.1.1 Argument Passing
通過解釋器執行腳本時,腳本名字以及其后額外的參數變為一個字符串列表,并且被賦值給sys
模塊中的argv
變量。可以通過執行import sys
來訪問這個列表。該列表的長度至少是1;當沒有指定腳本和參數時,sys.argv[0]
是空字符串。當腳本名字是'-'
(表示標準輸入)時候,sys.argv[0]
被設置為'-'
。當使用了-c 命令時,sys.argv[0]
被設置為-c
。當使用了-m模塊時,sys.argc[0]
被設置為本地模塊的全名。在-c 命令或者-m 模塊之后的選項不會被Python解釋器的選項處理機制所截獲,而是放入sys.argv
中供命令或者模塊處理。
2.1.2 Interactive Mode
當命令從終端讀取時,稱解釋器處于交互模式中。在這個模式中,解釋器使用主提示符提示下一命令的輸入,通常使用三個大于符號(>>>
);使用從屬提示符提示連續行的輸入,默認使用三個逗號(...
)。解釋器啟動后,在打印第一個提示符之前,會打印一條以其版本號和版權提示開頭的歡迎語句:
$ python3.6
Python 3.6 (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!
交互模式的更多信息,參見 Interactive Mode。
2.2 The Interpreter and Its Environment
2.2.1 Source Code Encoding
默認情況下,Python源文件默認以UTF-8編碼。使用這種編碼,世界上大多數語言的字符可以同時在字符串常量,標識符以及注釋中使用——雖然標準庫標識符只使用了ASCII字符,這是任何可移植代碼都應該遵循的約定。為能夠正確展示所有字符,編輯器必須使用UTF-8讀取文件,并且必須使用支持文件中所有字符的字體。
在文件第一行加入特殊注釋行可以為文件指定不同編碼方式。語法如下:
# -*- coding: encoding -*-
這里的encoding必須是Python支持的有效編碼
例如,為聲明使用Windows-1252,源文件首行應該如下:
# -*- coding: cp-1252 -*-
首行規則有一個例外,即當源碼以UNIX "shebang" line開始。這種情況下,編碼聲明應該加到第二行,例如:
#!/usr/bin/env python3
# -*- coding: cp-1252 -*-
Footnotes
<span id="jump1">[1] </span> Unix中,Python3.x解釋器并沒有以可執行名字python
安裝,以便于不與同時安裝的Python2.x沖突。