2. 使用Python解释器

2.1. 调用 Python 解释器

Python 解释器通常被安装在目标机器的 /usr/local/bin 目录下。将 /usr/local/bin 目录包含进 Unix shell 的搜索路径里,以确保可以通过输入:

python3.6

命令来启动他。 由于 Python 解释器的安装路径是可选的,这也可能是其它路径,你可以联系安装 Python 的用户或系统管理员确认(例如,/usr/local/python 就是一个常见的选择)。

在 Windows 机器上,Python 通常安装在 C:\Python36 位置,当然你可以在运行安装向导时修改此值。要想把此目录添加到你的 PATH 环境变量中,你可以在 DOS 窗口中输入以下命令:

set path=%path%;C:\python36

通常你可以在主窗口输入一个文件结束符(Unix 系统是 Control-D,Windows 系统是 Control-Z)让解释器以 0 状态码退出。如果那没有作用,你可以通过输入 quit() 命令退出解释器。

Python 解释器具有简单的行编辑功能,在 Unix 系统上的解释器可能需要 GUN readline 库支持,这样就具备了精巧的交互编辑和历史记录等功能。在 Python 主窗口中输入 Control-P 可能是检查是否支持命令行编辑的最简单的方法。如果发出嘟嘟声(计算机扬声器),则说明你可以使用命令行编辑功能;更多快捷键的介绍请参考 交互式输入行编辑历史回溯。如果没有任何声音,或者显示 ^P 字符,则说明命令行编辑功能不可用;你只能通过退格键从当前行删除已键入的字符并重新输入。

Note : Linux下解释器的控制台可能会出现删除键等一些按键不能使用。解决方案

Python 解释器有些操作类似 Unix shell:当使用终端设备(tty)作为标准输入调用时,它交互的解释并执行命令;当使用文件名参数或以文件作为标准输入调用时,它从文件中解读并执行 脚本

第二种启动 Python 解释器的方法是 python -c command [arg] ...,这种方法可以在 命令行 执行 Python 语句,类似于 shell 中的 -c 选项。由于 Python 语句通常会包含空格或其他对 shell 有特殊含义的字符,所以最好是把整个 command 用单引号包起来

有一些 Python 模块也可以当作脚本使用。你可以使用 python -m module [arg] ... 命令调用它们,这类似在命令行中给出完整的文件名来运行一样。

使用脚本文件时,经常会运行脚本然后进入交互模式。这也可以通过在脚本之前加上 -i 参数来实现。

所有的命令行操作描述都在命令行和环境中。

2.1.1. 参数传递

调用解释器时,脚本名和附加参数将变成字符串的列表,分配给 sys 模块中的 argv 变量。你能通过执行import syssys.argv的长度大于等于1,至少存在一个元素。

  • 如果是没有给出脚本和参数,sys.argv[0] 为空字符串。
  • 脚本名指定为 ‘-‘ (表示标准输入) 时, sys.argv[0] 被设定为 -
  • 使用 -c 命令 时, sys.argv[0] 被设定为 -c
  • 使用 -m 模块 时, sys.argv[0] 被设定为模块的全名。
  • -c command-m module 之后的参数不会被 Python 解释器的选项处理机制所截获, 而是留在 sys.argv 中, 供命令或模块操作。

2.1.2. 交互模式

从 tty 读取命令时,我们称解释器工作于 交互模式( interactive mode ) 。这种模式下它根据主提示符来执行,主提示符通常标识为三个大于号(>>>);继续的部分被称为 从属提示符 ,由三个点标识(...),用于续行。在第一行之前,解释器打印欢迎信息、版本号和授权提示:

$ 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 编码。在此编码下,全世界大多数语言的字符可以同时用在字符串、标识符和注释中 — 尽管 Python 标准库仅使用 ASCII 字符做为标识符,这只是任何可移植代码应该遵守的约定。如果要正确的显示所有的字符,你的编辑器必须能识别出文件是 UTF-8 编码,并且它使用的字体能支持文件中所有的字符。

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

# -*- coding: encoding -*-

其种 encoding 是Python库参考手册 codecs 中一张可用的编码列表中支持编码格式

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

# -*- coding: cp1252 -*-

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

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