2.1. 調用(Invoking) 解釋器
Python解釋器通常安裝在系統的/usr/local/bin/python3.8
位置; 通過將/usr/local/bin
放在Unix shell的搜索路徑(search path)中,就可以通過在Shell窗口中輸入以下命令來啟動它:
python3.8
1 因為解釋器所在的目錄是一個安裝選項,所以可以在其他地方安裝; 請與您的本地 Python專家或系統管理員聯系。(例如,/usr/local/python
是一個流行的替代位置。)
你已經在Windows機器上安裝從Microsoft Store 微軟商店的下載的,python3.8
命令將是可用的。如果你安裝了py.exe 啟動器,可以使用 py
命令。請參見:Excursus: Setting environment variables 來設置其他方式啟動Python。
在主提示符位置輸入一個EOF結束符 (即 Unix上的Control-D,Windows上的 Control-Z ) 將退出解釋器,並返回退出狀態碼 0。如果不起作用的話,可以通過使用 quit()
命令退出解釋器。
解釋器的行編輯特性包括交互式編輯、歷史替換和支持GNU Readline庫的系統的代碼補全。要查看是否支持命令行編輯,最快的方法可能是在得到的第一個Python提示符后鍵入Control-P。如果它發出嘟嘟響,你有命令行編輯(command line editing)功能; 有關的鍵介紹,請參閱附錄Interactive Input Editing and History Substitution。如果什么都沒有發生,或者^P
被回顯,命令行編輯是不可用的; 你只能使用backspace退格來刪除當前行的字符。
解釋器的操作有點像Unix shell: 當使用連接到tty設備的標准輸入調用它時,它以交互方式讀取和執行命令; 當使用文件名參數或將文件作為標准輸入調用時,它將從該文件中讀取並執行其中的腳本。
啟動解釋器的第二種方法是python -c command [arg] ...
命令,它在命令中執行語句,類似於shell的-c
選項。由於Python語句通常包含空格或其他對shell來說特殊的字符,因此通常建議使用單引號來對命令進行整體引用。
一些Python模塊作為腳本也很有用。這些可以使用 python -m module [arg] ...
來調用,該命令將執行模塊源文件就好像您在命令行中拼出了它的全名一樣。
當使用腳本文件時,有時能夠運行腳本並在之后進入交互模式是很有用的。這可以通過在腳本之前傳遞-i
來實現。所有命令行選項被描述在Command line and environment。
2.1.1. 傳遞參數
當解釋器知道后,腳本名和其他參數隨后被轉換成字符串list列表,並分配給sys
模塊中的
argv
變量。您可以通過執行
import sys
來訪問這個列表。該列表的長度至少為1; 當沒有腳本和參數時,
sys.argv[0]
是一個空字符串。當腳本名被指定為
'-'
(表示標准輸入)時,
sys.argv[0]
被設置為
'-'
。當使用
-c
命令時,
sys.argv[0]
被設置為
'-c'
。當使用
-m
模塊時,使用
sys.argv[0]
被設置為所定位模塊的全名。在
-c
命令或
-m
模塊后發現的選項是不會被Python解釋器的選項處理機制給消耗掉的,而是保留在
sys.argv
供命令或模塊來處理。
2.1.2. 交互模式
當從一個tty讀取命令時,解釋器處於交互模式 (interactive mode)。在這種模式下,它用主提示符提示下一個命令,通常是三個大於號(>>>
); 對續行它用輔助提示符提示,默認情況下是三個點(...
)。在顯示第一個提示符之前,解釋器會顯示一條包含有版本號和版權聲明的歡迎消息:
$ python3.8 Python 3.8 (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. 解釋器及其環境
2.2.1. 編碼源代碼
默認情況下,Python源文件被視為用UTF-8編碼的。在這種編碼中,世界上大多數語言的字符可以同時用於字符串文字、標識符和注釋——盡管標准庫只使用ASCII字符作為標識符,這是任何可移植代碼都應該遵循的約定。要正確顯示所有字符,您的編輯器必須接收文件是UTF-8編碼的,並且必須使用支持文件中所有字符的字體。# -*- coding: encoding -*-
其中編碼是Python支持的一種有效的codecs
編解碼器。
例如,要聲明使用Windows-1252編碼,你的源代碼文件的第一行應該是:
# -*- coding: cp1252 -*-
#!/usr/bin/env python3 # -*- coding: cp1252 -*-
腳注:
- 1
-
在Unix上,Python 3.x解釋器默認是沒有安裝名為
python
的可執行文件,因此它不會與同時安裝的Python 2.x發生沖突。