2.Python解释器的使用

2.1 调用解释器

Ptython解释器一般以 /usr/local/bin/python3.6 安装在可用机器上,把/usr/local/bin 放在你的Unix shell搜索路径下,然后可以通过在shell里输入以下命令启动它:

1
$ python 3.6

由于解释器的安装目录位置是可选择的,所有也可能被安装了在其他地方,具体的可以咨询你本地的Python专家或系统管理员。(比如: /usr/local/python 就是一个建议安装的位置。)

在Windows机器上,Python的安装路径一般是 C:\Python36 ,虽然安装时你也可以安装到其他地方。在DOS框的命令提示符输入以下指令把这个目录加到电脑路径中:

1
$ set path=%path%;C:\python36

完成后,可在主提示符里输入文件结束符(Linux为Ctr_D,Windows为Ctr_Z)让解释器完全退出。如果那样不行的话,输入命令:quit()来退出解释器。

在支持readline的系统上,Python解释器的行编辑功能里有交互式编辑、历史替换和代码完成等功能。在第一个Python提示符里输入Ctr_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读取命令时,解释器被认为处于交互模式。在这种模式下,它会提示下一个带有主提示符的命令,通常是三个大于符号(>>>);对于连续行,它会使用次要提示(默认情况是三个点…)进行提示。在打印第一个提示之前,解释器会打印一条欢迎信息,说明其版本号和版权声明。

1
2
3
4
5
$ $ 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语句:

1
2
3
4
5
$ >>> 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字符作为标识符,ASCII是任何可移植代码应遵循的约定。编辑器如果要正确显示这些字符,就必须识别该文件是UTF-8格式的,而且编辑器必须使用一种可以支持文件里所有字符的字体。

如果不用默认的编码格式,而要声明另一种编码格式,则需要在文件的第一行添加一条特别的评论线。语法如下:

1
$ # -*- coding: encoding -*-

encoding 是Python支持的编码解释器之一。

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

1
$ # -*- coding: cp1252 -*-

对于第一行规则有个例外:即源代码的第一行是 UNIX “shebang” 的时候。这种情况下,编码声明就需要加在文件的第二行。比如:

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

分享到