[譯]The Python Tutorial#Using the Python Interpreter

[譯]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沖突。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容