Python官方文档中文版(二: 使用Python解释器)
2.1 调用解释器
Python解释器通常安装在系统的/usr/local/bin/python3.6位置; 把/usr/local/bin放到Unix shell的搜索路径中,然后可以通过输入以下命令启动它[1]:
python3.6
由于解释器的位置可以在安装时进行自主选择,所以放在其他文件路径也是可能的; 你可以咨询本地Python专家或系统管理员。(例如, /usr/local/python是一个受欢迎的替代位置。)
在Windows系统上,Python安装通常放置在C:\Python36,但你可以在安装程序时更改此设置。要将此目录添加到路径中,可以在cmd/powershell中输入以下命令:
set path=%path%;C:\python36
在主提示符下输入文件结束符(end-of-file character)(Unix上为Control-D ,Windows上为Control-Z )会退出解释器并出现一个退出状态零(zero exit status)。 如果上面的命令不起作用,可以通过输入以下命令quit()退出解释器 。
解释器的行编辑功能包括支持readline的交互式编辑,历史替换和完成编码。 也许,查看命令行编辑是否受支持的最快速检查是在你直接输入Control-P 。 如果它发出嘟嘟声,你将可以进行命令行编辑;请参阅附录“交互式输入编辑和历史替换 ”以了解详细的内容。 如果没有任何事情发生,或者^P被回显,则表示命令行编辑不可用;你只能使用退格删除当前行中的字符。
解释器的运行方式与Unix shell相似:当使用连接到tty设备的标准输入进行调用时,它交互式地读取并执行命令;当使用文件名参数或文件作为标准输入进行调用时,它会从该文件读取并执行脚本 。
第二种启动解释器的方法是python -c command [arg] ...,它执行命令中的语句,类似于shell的-c选项。 由于Python语句通常包含空格或其他特殊的字符,因此通常建议使用单引号引用整个命令 。
有些Python模块也可用作脚本。 这些可以使用python -m module [arg] ...来调用,它执行模块的源文件,就像在命令行中拼写完整的名称一样。
当使用脚本文件时,有时可以运行脚本并在之后进入交互模式。 这可以通过在脚本之前传递-i来完成。
命令行和环境中介绍了所有命令行选项。
2.1.1 参数传递
当解释器运行后,脚本名称和附加参数会变成一个字符串列表并分配给sys模块中的argv变量。 你可以通过执行import sys来访问此列表。 列表的长度至少为1;当没有给出脚本和参数时,sys.argv[0]是一个空字符串。当脚本名称为'-' (表示标准输入)时,sys.argv[0]会被设置为'-' 。当使用-c命令时 ,sys.argv[0]被设置为'-c'。当使用-m模块时,sys.argv[0]被设置为所在模块的全名。在-c命令或-m模块之后的操作不会被Python解释器处理,而会留在sys.argv供命令或模块处理。
2.1.2 交互模式
当从tty读取到命令时,解释器被认为处于交互模式 。 在这种模式下,它会提示下一个带有主提示符(primary prompt)的命令,通常是三个大于符号( >>> );对于连续行,它会使用次要提示进行提示,默认情况下为三个点( ... )。解释器在打印出第一个符号之前会先打印欢迎信息以说明其版本号和版权声明:
$ 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是Python支持的有效codecs方式之一。
例如,要声明要使用Windows-1252编码,源代码文件的第一行应该是:
# -*- coding: cp-1252 -*-
第一行规则的一个例外是源代码以UNIX“shebang”行开头。 在这种情况下,应该将编码声明添加为文件的第二行。例如:
#!/usr/bin/env python3
# -*- coding: cp-1252 -*-
脚注
[1] 在Unix上,Python 3.x解释器默认没有安装可执行文件python ,因此它不会与同时安装的Python 2.x可执行文件冲突。