天天看点

使用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 -*-