2. 使用 Python 解释器¶
2.1. 调用解释器¶
Python 解释器通常安装在 /usr/local/bin/python3.12
,在有此解释器的机器上;将 /usr/local/bin
添加到 Unix shell 的搜索路径中,就可以通过输入以下命令启动它
python3.12
到 shell 中。 [1] 由于解释器所在目录的选择是一个安装选项,因此其他位置也是可能的;请咨询您当地的 Python 专家或系统管理员。(例如,/usr/local/python
是一个流行的备用位置。)
在从 Microsoft Store 安装了 Python 的 Windows 机器上,python3.12
命令将可用。如果您安装了 py.exe 启动器,则可以使用 py
命令。有关启动 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
command 时,sys.argv[0]
被设置为 '-c'
。当使用 -m
module 时,sys.argv[0]
被设置为找到的模块的完整名称。在 -c
command 或 -m
module 之后找到的选项不会被 Python 解释器的选项处理消耗,而是保留在 sys.argv
中,供命令或模块处理。
2.1.2. 交互模式¶
当从 tty 读取命令时,解释器被称为处于交互模式。在这种模式下,它会使用主提示符提示下一个命令,通常是三个大于号 (>>>
);对于延续行,它会使用次提示符提示,默认情况下是三个点 (...
)。解释器在打印第一个提示符之前会打印一条欢迎消息,说明其版本号和版权声明。
$ python3.12
Python 3.12 (default, April 4 2022, 09:25:04)
[GCC 10.2.0] 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: cp1252 -*-
首行规则的一个例外是,当源代码以 UNIX “shebang” 行 开头时。在这种情况下,编码声明应作为文件的第二行添加。例如
#!/usr/bin/env python3
# -*- coding: cp1252 -*-
脚注