2. 使用 Python 解释器 — Python 文档

来自菜鸟教程
Python/docs/3.7/tutorial/interpreter
跳转至:导航、​搜索

2. 使用 Python 解释器

2.1. 调用解释器

Python 解释器通常以 /usr/local/bin/python3.7 的形式安装在那些可用的机器上; 将 /usr/local/bin 放在 Unix shell 的搜索路径中,可以通过键入以下命令来启动它:

python3.7

到外壳。 1 由于选择解释器所在的目录是一个安装选项,其他地方也是可以的; 请咨询您当地的 Python 专家或系统管理员。 (例如,/usr/local/python 是一个流行的替代位置。)

在已从 Microsoft Store 安装 Python 的 Windows 计算机上,python3.7 命令将可用。 如果您安装了 py.exe 启动器 ,则可以使用 py 命令。 请参阅 Excursus:设置环境变量 以了解启动 Python 的其他方法。

在主提示符下输入文件结束符(Unix 上的 Control-D,Windows 上的 Control-Z)会导致解释器以零退出状态退出。 如果这不起作用,您可以通过键入以下命令退出解释器:quit()

解释器的行编辑功能包括在支持 GNU Readline 库的系统上的交互式编辑、历史替换和代码完成。 或许查看是否支持命令行编辑的最快方法是在您得到的第一个 Python 提示中输入 Control-P。 如果它发出哔哔声,你有命令行编辑; 请参阅附录 交互式输入编辑和历史替换 以了解键的介绍。 如果没有任何反应,或者回显 ^P,则命令行编辑不可用; 您将只能使用退格键从当前行中删除字符。

解释器的操作有点像 Unix shell:当使用连接到 tty 设备的标准输入调用时,它以交互方式读取和执行命令; 当使用文件名参数或文件作为标准输入调用时,它从该文件读取并执行 脚本

启动解释器的第二种方式是 python -c command [arg] ...,它执行 command 中的语句,类似于 shell 的 -c 选项。 由于 Python 语句通常包含空格或其他 shell 特有的字符,因此通常建议用单引号将 command 整个引用。

一些 Python 模块也可用作脚本。 这些可以使用 python -m module [arg] ... 调用,它会执行 module 的源文件,就像您在命令行中拼出它的全名一样。

使用脚本文件时,有时能够运行脚本并随后进入交互模式会很有用。 这可以通过在脚本之前传递 -i 来完成。

命令行和环境中描述了所有命令行选项。

2.1.1. 参数传递

当解释器知道时,脚本名称和其后的附加参数将转换为字符串列表并分配给 sys 模块中的 argv 变量。 您可以通过执行 import sys 来访问此列表。 列表的长度至少为 1; 当没有给出脚本和参数时, sys.argv[0] 是一个空字符串。 当脚本名称为 '-'(表示标准输入)时,sys.argv[0] 设置为 '-'。 当使用-c命令时,sys.argv[0]设置为'-c'。 当使用 -m module 时,sys.argv[0] 设置为定位模块的全名。 在 -c command-m module 之后找到的选项不会被 Python 解释器的选项处理消耗,而是留在 [ X170X] 用于要处理的命令或模块。


2.1.2. 交互模式

当从 tty 读取命令时,解释器被称为处于 交互模式 。 在这种模式下,它用 主要提示 提示下一个命令,通常是三个大于号 (>>>); 对于连续行,它会提示 次要提示 ,默认情况下是三个点 (...)。 解释器在打印第一个提示之前打印一条欢迎消息,说明其版本号和版权声明:

$ python3.7
Python 3.7 (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,并且它必须使用支持文件中所有字符的字体。

要声明默认编码以外的编码,应添加一个特殊注释行作为文件的 first 行。 语法如下:

# -*- coding: encoding -*-

其中 encoding 是 Python 支持的有效 codecs 之一。

例如,要声明要使用 Windows-1252 编码,源代码文件的第一行应该是:

# -*- coding: cp1252 -*-

第一行规则的一个例外是源代码以UNIX“shebang”行开头。 在这种情况下,编码声明应添加为文件的第二行。 例如:

#!/usr/bin/env python3
# -*- coding: cp1252 -*-

脚注

1
在 Unix 上,Python 3.x 解释器默认不与名为 python 的可执行文件一起安装,因此它不会与同时安装的 Python 2.x 可执行文件发生冲突。