//文章

2. Python 解释器

2.1 调用解释器

Python 解释器在机器上通常安装成/usr/local/bin/python3.4;将/usr/local/bin放在您的 Unix shell 搜索路径,使得可以通过在shell 中键入命令

python3.4

来启动它。 [1]由于解释器放置的目录是一个安装选项,因此安装在其他位置也是可能的;请与您的 Python 专家或系统管理员联系。(例如, /usr/local/python是一个常见的替代位置。

在Windows机器上,Python的安装通常是放置在C:\Python3,当然你可以在运行安装程序时进行更改。你可以在一个DOS窗口的命令提示符下键入以下命令来把这个目录添加到路径中:

set path=%path%;C:\python34

主提示符下键入文件结束字符 ( Unix 上是Control-D 、 Windows 上是Control-Z) 会导致该解释器以零退出状态退出。如果无法正常工作,您可以通过键入以下命令退出解释器: quit()

编辑器的行编辑功能包括交互式编辑,历史记录和代码补全,其中代码补全功能需要系统支持readline库。也许检查是否支持命令行编辑的最快方法就是在您遇到的第一个 Python 提示符下敲击 Control-P。如果它发出蜂鸣声,则证明支持命令行编辑 ;请参阅附录交互式输入编辑和历史替代 的有关快捷键的介绍。如果什么都没发生,或者显示^ P,命令行编辑不可用 ;你就只能够使用退格键删除当前行中的字符。

解释器有些像 Unix shell:当使用tty设备作为标准输入调用时,它交互地读取并执行命令 ;当用文件名参数或文件作为标准输入调用,它将读取并执行该文件中的脚本

第二种启动解释器的方式是python -c command [arg] ...,这种方式执行在command中的语句,类似于 shell 的-c选项中。因为 Python 语句经常包含空格或其他shell 特殊字符,通常建议把command部分全部放在单引号里。

有些 Python 模块同时也是可执行的脚本。这些模块可以使用python -m module [arg] ......直接调用,这和在命令行输入完整的路径名执行模块 的源文件是一样的。

当使用一个脚本文件时,运行该脚本之后进入交互模式,有时是很有用的。这可以通过在脚本前面加上-i 选项实现。

有关所有命令行选项的说明请参阅 命令行与环境.

2.1.1. 参数传递

调用解释器时,脚本名称和其他参数被转换成一个字符串列表并赋值给sys模块中的argv变量。你可以通过import sys访问此列表。列表的长度是至少是 1 ;如果没有给出脚本和参数, sys.argv[0]是一个空字符串。当使用-c 命令时, sys.argv[0]设置为'-c'。当使用-m 模块参数时, sys.argv[0]被设定为指定模块的全名。-c 选项或-m 选项后面的选项不会被Python 解释器处理,但是会被保存在sys.argv中,供命令或模块使用。

2.1.2. 交互模式

当从 tty 读取命令时,我们说解释器在交互模式 下。这种模式下,解释器以主提示符 提示输入命令,主提示符通常标识为三个大于号(>>>) ;如果有续行,解释器以从提示符 提示输入,默认为三个点 (...)。在第一个提示符之前,解释器会打印出一条欢迎信息声明它的版本号和授权公告:

$ python3.4
Python 3.4 (default, Mar 16 2014, 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 -*-

通过此声明,源文件中的所有字符将被视为由 encoding 而不是UTF-8编码。在 Python 库参考手册的 codecs 小节中,可以找到所有可能的编码方式列表。

例如,如果你选择的编辑器不支持UTF-8编码的文件,而只能用其它编码比如Windows-1252,你可以这样写:

# -*- coding: cp-1252 -*-

currency = u"€"
print ord(currency)

然后源文件中的所有字符仍然使用Windows-1252字符集。这个特殊的编码注释必须位于文件的第一或者第二行

脚注

[1] 在 Unix 系统中, 为了避免与系统默认安装的 Python 2.x 可执行文件相冲突, Python 3.x 默认安装的文件中并不包含名为 python 的可执行文件。

0 0

发表评论