2. 使用Python解释器¶
2.1. 调用翻译¶
Python解释器通常作为 /usr/local/bin/python3.6
安装在可用的那些机器上;将 /usr/local/bin
放在Unix shell的搜索路径中,可以通过键入以下命令来启动它:
python3.6
到壳。 [1] 由于解释器所在的目录的选择是安装选项,其他地方是可能的;请与您的本地Python管理员或系统管理员联系。 (例如,/usr/local/python
是受欢迎的替代位置。)
在Windows机器上,Python安装通常放在 C:\Python36
中,虽然您可以在运行安装程序时更改此设置。要将此目录添加到您的路径,您可以在DOS框中的命令提示符下键入以下命令:
set path=%path%;C:\python36
在主提示符处键入文件结束字符(Unix上的 Control-D
,Windows上的 Control-Z
)会导致解释器退出,退出状态为零。如果这不工作,您可以通过键入以下命令退出解释器:quit()
。
解释器的行编辑功能包括在支持readline的系统上的交互式编辑,历史替换和代码完成。也许最快的检查是否支持命令行编辑是打开 Control-P
到您获得的第一个Python提示。如果它发出哔声,你有命令行编辑;有关键的介绍,请参见附录 交互式输入编辑和历史替换。如果没有发生任何事情,或者如果 ^P
回显,命令行编辑不可用;您只能使用退格键从当前行中删除字符。
解释器的工作方式与Unix shell类似:当使用标准输入连接到tty设备时,它会以交互方式读取和执行命令;当用文件名参数或文件作为标准输入调用时,它从该文件读取并执行 script。
启动解释器的第二种方法是 python -c command [arg] ...
,它执行 command 中的语句,类似于shell的 -c
选项。因为Python语句通常包含空格或其他对shell特殊的字符,所以通常建议用单引号引用 command 的整体。
一些Python模块也可用作脚本。这些可以使用 python -m module [arg] ...
来调用,python -m module [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.6
Python 3.6 (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 Library Reference中的 codecs
部分找到。
例如,如果您选择的编辑器不支持UTF-8编码文件,并坚持使用其他编码,例如Windows-1252,您可以编写:
# -*- coding: cp-1252 -*-
并仍然使用源文件中的Windows-1252字符集中的所有字符。特殊编码注释必须在文件中的 第一或第二 行中。
脚注
[1] | 在Unix上,Python 3.x解释器默认情况下不安装可执行文件 |