2. 使用Python 解释器 ¶
2.1. 调用解释器¶
在可以使用Python的系统中,解释器通常位于/usr/local/bin/python3.5
;在Unix shell中设置路径 /usr/local/bin
,之后可以通过键入命令:
python3.5
python3.5[1]由于解释器安装的目录是一个安装可选项,其它的路径也是可行的。请与您本地的Python专家或系统管理员联系。(一般 /usr/local/python
为最常见的安装位置。)
在 Windows中,Python 通常安装在 C:\Python35
,在运行安装程序时,您可以更改安装路径。你可以在DOS窗口的命令提示符下键入以下命令来把这个目录添加到path中:
set path=%path%;C:\python35
主提示符下键入文件结束字符 (Unix下为Control-D
,Windows下为 Control- Z
) 可以让解释器以零退出状态退出。如果无效,您也可以通过键入以下命令退出解释器︰ quit()
。
解释器的行编辑功能通常不是很复杂。在Unix上,不管是谁安装的,解释器可能已启用对GNU readline库的支持,该库添加了更详细的交互式编辑和历史记录功能。检查是否支持命令行编辑的最快的方式也许是对你的第一个Python提示符键入Control-P
。如果它发出蜂鸣声,则有命令行编辑;请参阅附录交互式输入编辑和历史替换 的有关快捷键的介绍。如果什么都没发生,或者显示^ P
,则命令行编辑不可用;你就只能够使用退格键删除当前行中的字符。1
解释器有些像Unix shell:当调用时使用连接到一个tty设备作为标准输入,它交互地读取并执行命令;当用文件名参数或文件作为标准输入调用,它将读取并执行该文件中的脚本。
第二种启动解释器的方式是python -c 命令 [arg] ...
,它会执行command中的语句,类似于shell的-c
选项。因为Python语句经常包含空格或其他shell特殊字符,通常建议把全部command放在单引号里。
有些 Python 模块也是可执行的脚本。这些模块可以使用 python -m 模块 [arg] ...
直接调用,这和在命令行输入完整的路径名执行module的源文件是一样的。
当使用脚本文件时,有时能够运行脚本并随后进入交互模式是有用的。这可以通过在脚本前面加上-i
选项实现。
我们会在后续章节 命令行和环境 中介绍命令行的所有选项。
2.1.1. 传递参数¶
传递给解释器后,脚本名称和名称后面的其他参数被转换成一个字符串列表并赋值给sys
模块中的argv
变量。你可以通过 import sys
访问此列表。列表的长度至少是一;如果没有给出没有脚本和任何参数,sys.argv[0]
是一个空字符串。当脚本名称被给定为 '-'
(代表标准输入),sys.argv[0]
将被设置为 '-'
。当 使用 -c
command时,sys.argv[0]
设置为 '-c'
。当使用 -m
module时,sys.argv[0]
被设定为指定模块的全名。-c
command 或 -m
module 后面的选项不会被Python解释器的选项处理机制解析,而是被保存在 sys.argv
中,供命令或模块使用
2.1.2. 交互模式¶
当从tty读取命令时,解释器处于交互模式。这种模式下解释器以 初始提示符 提示下一个命令,主提示符通常为三个大于号(>>>
);对于续行解释器以 从提示符 提示,默认为三个点(...
)。解释器在打印第一个提示之前打印一个欢迎消息,说明其版本号和版权声明:
$ python3.5
Python 3.5 (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!
更多的交互模式,请参阅 交互式模式。
2.2. 编译器及环境¶
2.2.1. 源程序的编码¶
默认情况下,Python源文件被视为以UTF-8编码。在这种编码下,世界上大多数语言的字符可以在字符串,标识符和注释中使用 — 尽管标准库中的标识符只使用ASCII字符,它是可移植代码应该遵循的一个惯例。要正确显示所有这些字符,编辑器必须识别该文件是UTF-8,并且必须使用支持文件中所有字符的字体。
还可以为源文件指定不同的编码。为了做到这一点,可以在 #!
行之后再增加一个特殊注释行来定义文件的编码
# -*- coding: encoding -*-
使用该声明,源文件中的所有内容都将被视为具有编码encoding而不是UTF-8。可用编码列表可以在 Python 库参考,见于关于 编解码器
的一节。
例如,如果您选择的编辑器不支持UTF-8编码文件,并坚持使用其他编码,例如Windows-1252,您可以写:
# -*- coding: cp-1252 -*-
并仍然使用源文件中的Windows-1252字符集中的所有字符。特殊编码注释必须在文件中的第一行或第二行中。
脚注
[1] | 在 Unix 上,为了与同时安装 Python 2.x 可执行文件,默认情况下不是以 python 来为python 3.x 可执行文件命名的。 |