2. 使用 Python 解释器

IamZS 95 0

2.1. 调用解释器

在受支持的系统中,Python 解释器一般安装在/usr/local/bin/python3.7;在 Unix shell 中设置路径/usr/local/bin,使得可以通过在 shell 中键入命令:

python3.7

来启动解释器。(在 Unix 系统中,Python 3.x 版本安装时解释器可执行文件默认不是以 python 命名的,所以与同时安装的 Python 2.x 版本并不会冲突。)由于解释器安装目录是一个安装可选项,其他路径也是有可能的;请与您本地 Python 专家或系统管理员进行确认。(比如,/usr/local/python 是一个较常见的安装路径。)

在 Windows 中,Python 通常安装在 C:\Python36 目录下,当然在安装时你也可以更改其路径。可以在 DOS 窗口的命令提示符中输入以下命令将该安装目录添加到环境变量 path 中:

set path=%path%;C:\python36

主提示符下键入文件结束字符(Unix 下为 Control-D,Windows 下为 Control-Z)可以让解释器以零退出状态退出。如果无效,可以输入 quit() 来退出解释器。

解释器的行编辑功能包括交互式编辑、历史记录和代码补全(在那些支持 readline 库的系统上)。也许在第一个 Python 提示符键入 Control-P 是检查是否支持命令行编辑最快的方式。如果他发出蜂鸣声,则支持命令行编辑;请参阅附录交互式输入编辑和历史替换中有关快捷键的介绍。如果什么也没发生,或是显示 ^P,那么则不支持命令行编辑;你将只能使用退格键删除当前行中的字符。

解释器工作模式有点像 Unix shell:当调用时使用一个已连接的 tty 设备作为标准输入时,它交互地读取和执行命令;当使用文件名参数和文件作为标准输入调用时,它读取和执行文件中的脚本。

启动解释器的第二种方式是 python -c command [arg] ...,它会执行 command 中的语句,类似于 shell 中的 -c 选项。因为 Python 语句经常包含空格或其他对 shell 来说的特殊字符,通常建议把 command 全部放在一对单引号中。

有些 Python 模块也像脚本一样有用(?)。这些模块可以通过 python -m module [arg] ... 调用,这和你在命令行中输入完整路径名执行模块的源文件是一样的。

当使用一个脚本文件时,运行该脚本之后进入交互模式,有时候是很有用的。这可以通过在脚本名前加入 -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 解释器的选项处理机制(option processing)解析,而是被保存在 sys.argv 中供命令或模块处理。

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 编码的,且必须使用支持文件中所有字符的字体。

也可以在文件的第一行添加一条注释来指定不同的编码方式。语法规则如下:

# -*- coding: encoding -*-

上面的 encoding 为 Python 支持的一种合法编解码方式

比如,如果要将文件编码方式指定为 Windows-1252,那么源文件代码的第一行应该是这样的:

# -*- coding: cp1252 -*-

有个例外情况,当源代码以 UNIX “shebang” line 开始。在这种情况下,编码方式的声明应该放在第二行。比如:

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

发表评论
表情 图片 链接 代码