天天看點

使用python解釋器

一、調用解釋器

python解釋器通常安裝在如下目錄中:/user/local/bin/python。将/user/local/bin放在 指令行的搜尋路徑下(配置環境變量),這樣才能使用如下指令:

python      

解釋器安裝的目錄是可選的。windows平台下,python通常預設安裝到C:\Python27下,當然你也可以安裝到其它目錄。在DOS視窗輸入如下指令以配置環境變量:

set path=%path%;C:\python27      

Unix平台下輸入Control - I,Windows平台下輸入Control - Z 以退出解釋器。如果不起作用,可以輸入指令:

quit()      

通常python解釋器的行編輯特性不很複雜。Unix平台下支援GNU讀行庫,這使得編輯功能更加強大。使用指令Control -P 可以快速檢查是否支援此種編輯方式。如果聽到“嘟”的一聲,就能用。如果什麼都沒聽到,并顯示 ^P ,那就不能用。

解釋器的操作方式有點類似于指令行的。當将連接配接到的tty裝置作為标準輸入時,解釋器将讀取鍵入的指令并執行它們;當把檔案當作标準輸入時,解釋器将讀取檔案内的腳本并執行它們。

另一種執行python指令的方式是

python -c python語句      

因為python語句經常包括空格和可能影響shell腳本執行的特殊字元,是以建議将python語句用單引号括起來。

一些python子產品也是很有用的腳本。可以用指令

python -m 子產品      

調用這些子產品。該指令将執行子產品的源檔案,就好像你在指令行中用了該檔案的全名而打開了此檔案一樣。

如果想了解更多指令,請使用指令

python -h      

二、參數傳遞

腳本名和其它額外的參數會以字元串清單的形式存儲在 sys 子產品的 argv 數組中。你可以通過

import sys      

指令通路這個清單。該清單的長度至少為1。如果沒有參數和腳本,

sys.argv[0]      

的值是空字元串。如果腳本名是 ‘-’(代表标準輸入),

sys.argv[0]      

的值是 ‘-’ 。如果使用了 -c 指令,

sys.argv[0]      

的值是 ‘-c’ 。如果使用了 -m 指令,

sys.argv[0]      

的值是被調用子產品的全名。- c 或 -m 後面的 option 選項不會被 python 解釋器銷毀,而是保留在 sys.argv 中作為指令或子產品來處理。

三、互動模式

當從 tty 讀取指令時,解釋器就處在互動模式下。通常用三個大于号(>>>)提示輸入一條指令。用三個點(…)提示可以輸入多行指令。

在輸入第一條 python 語句前,解釋器會先顯示出一條包含版本号,版權資訊的提示。如:

python
Python 2.7 (#1, Feb 28 2010, 00:02:06)
Type "help", "copyright", "credits" or "license" for more information.
>>>      

輸入多行指令需要使用 ‘ : ’ 符号,例:

>>> the_world_is_flat = 1
>>> if the_world_is_flat:
...     print "Be careful not to fall off!"
...
Be careful not to fall off!      

四、解釋器和環境

預設,python 源檔案以 UTF-8 的編碼存儲。盡管标準庫僅使用 ASCII 字元來顯示辨別符,但是用 UTF-8 編碼,世界上大部分語言符号都能以文字,辨別符,注釋的形式同時存在于一個檔案中。為了正常顯示所有字元,你的編輯器必須能識别 UTF-8 ,必須使用一種能表示所有字元的字型。

為檔案設定另一種編碼,應在該檔案第一行添加特殊聲明。文法如下:

# -*- coding: 編碼 -*-      

編碼應是 python 支援的值。

編解碼器 别名 語言
ascii 646, us-ascii English
big5 big5-tw, csbig5 Traditional Chinese
big5hkscs big5-hkscs, hkscs Traditional Chinese
cp037 IBM037, IBM039 English
cp424 EBCDIC-CP-HE, IBM424 Hebrew
cp437 437, IBM437 English
cp500 EBCDIC-CP-BE, EBCDIC-CP-CH, IBM500 Western Europe
cp720 Arabic
cp737 Greek
cp775 IBM775 Baltic languages
cp850 850, IBM850 Western Europe
cp852 852, IBM852 Central and Eastern Europe
cp855 855, IBM855 Bulgarian, Byelorussian, Macedonian, Russian, Serbian
cp856 Hebrew
cp857 857, IBM857 Turkish
cp858 858, IBM858 Western Europe
cp860 860, IBM860 Portuguese
cp861 861, CP-IS, IBM861 Icelandic
cp862 862, IBM862 Hebrew
cp863 863, IBM863 Canadian
cp864 IBM864 Arabic
cp865 865, IBM865 Danish, Norwegian
cp866 866, IBM866 Russian
cp869 869, CP-GR, IBM869 Greek
cp874 Thai
cp875 Greek
cp932 932, ms932, mskanji, ms-kanji Japanese
cp949 949, ms949, uhc Korean
cp950 950, ms950 Traditional Chinese
cp1006 Urdu
cp1026 ibm1026 Turkish
cp1140 ibm1140 Western Europe
cp1250 windows-1250 Central and Eastern Europe
cp1251 windows-1251 Bulgarian, Byelorussian, Macedonian, Russian, Serbian
cp1252 windows-1252 Western Europe
cp1253 windows-1253 Greek
cp1254 windows-1254 Turkish
cp1255 windows-1255 Hebrew
cp1256 windows-1256 Arabic
cp1257 windows-1257 Baltic languages
cp1258 windows-1258 Vietnamese
euc_jp eucjp, ujis, u-jis Japanese
euc_jis_2004 jisx0213, eucjis2004 Japanese
euc_jisx0213 eucjisx0213 Japanese
euc_kr euckr, korean, ksc5601, ks_c-5601, ks_c-5601-1987, ksx1001, ks_x-1001 Korean
gb2312 chinese, csiso58gb231280, euc- cn, euccn, eucgb2312-cn, gb2312-1980, gb2312-80, iso- ir-58 Simplified Chinese
gbk 936, cp936, ms936 Unified Chinese
gb18030 gb18030-2000 Unified Chinese
hz hzgb, hz-gb, hz-gb-2312 Simplified Chinese
iso2022_jp csiso2022jp, iso2022jp, iso-2022-jp Japanese
iso2022_jp_1 iso2022jp-1, iso-2022-jp-1 Japanese
iso2022_jp_2 iso2022jp-2, iso-2022-jp-2 Japanese, Korean, Simplified Chinese, Western Europe, Greek
iso2022_jp_2004 iso2022jp-2004, iso-2022-jp-2004 Japanese
iso2022_jp_3 iso2022jp-3, iso-2022-jp-3 Japanese
iso2022_jp_ext iso2022jp-ext, iso-2022-jp-ext Japanese
iso2022_kr csiso2022kr, iso2022kr, iso-2022-kr Korean
latin_1 iso-8859-1, iso8859-1, 8859, cp819, latin, latin1, L1 West Europe
iso8859_2 iso-8859-2, latin2, L2 Central and Eastern Europe
iso8859_3 iso-8859-3, latin3, L3 Esperanto, Maltese
iso8859_4 iso-8859-4, latin4, L4 Baltic languages
iso8859_5 iso-8859-5, cyrillic Bulgarian, Byelorussian, Macedonian, Russian, Serbian
iso8859_6 iso-8859-6, arabic Arabic
iso8859_7 iso-8859-7, greek, greek8 Greek
iso8859_8 iso-8859-8, hebrew Hebrew
iso8859_9 iso-8859-9, latin5, L5 Turkish
iso8859_10 iso-8859-10, latin6, L6 Nordic languages
iso8859_11 iso-8859-11, thai Thai languages
iso8859_13 iso-8859-13, latin7, L7 Baltic languages
iso8859_14 iso-8859-14, latin8, L8 Celtic languages
iso8859_15 iso-8859-15, latin9, L9 Western Europe
iso8859_16 iso-8859-16, latin10, L10 South-Eastern Europe
johab cp1361, ms1361 Korean
koi8_r Russian
koi8_u Ukrainian
mac_cyrillic maccyrillic Bulgarian, Byelorussian, Macedonian, Russian, Serbian
mac_greek macgreek Greek
mac_iceland maciceland Icelandic
mac_latin2 maclatin2, maccentraleurope Central and Eastern Europe
mac_roman macroman Western Europe
mac_turkish macturkish Turkish
ptcp154 csptcp154, pt154, cp154, cyrillic-asian Kazakh
shift_jis csshiftjis, shiftjis, sjis, s_jis Japanese
shift_jis_2004 shiftjis2004, sjis_2004, sjis2004 Japanese
shift_jisx0213 shiftjisx0213, sjisx0213, s_jisx0213 Japanese
utf_32 U32, utf32 all languages
utf_32_be UTF-32BE all languages
utf_32_le UTF-32LE all languages
utf_16 U16, utf16 all languages
utf_16_be UTF-16BE all languages (BMP only)
utf_16_le UTF-16LE all languages (BMP only)
utf_7 U7, unicode-1-1-utf-7 all languages
utf_8 U8, UTF, utf8 all languages
utf_8_sig all languages
# -*- coding: cp-1252 -*-      
#!/usr/bin/env python
# -*- coding: cp-1252 -*-