[译]The Python Tutorial#2. Using the Python Interpreter

来源:互联网 发布:html input value js 编辑:程序博客网 时间:2024/06/06 00:06

[译]The Python Tutorial#Using the Python Interpreter

2.1 Invoking the Interpreter

Python解释器通常安装在目标机器的/usr/local/bin/python3.6目录下;将/usr/local/bin设置到Unix shell的搜索路径中,就可以使用以下命令:

python3.6

启动Python解释器[1]。由于Python的安装路径是可选的,其他目录也是可能的;可以咨询Python安装用户或者系统管理员确认。(例如/usr/local/python是常见的可选目录。)

Window机器上,Python通常安装在C:\Python36目录,可是也可以在安装过程中改变安装路径。可以在DOS中输入以下命令来将安装目录加入环境变量:

set path=%path%;C:\python36

在主提示符后输入文件结束符(Unix中是Control-D,Windows中是Control-Z)将导致解释器以0状态退出。如果不起作用,可以使用quit()命令来退出解释器。

解释器的行编辑特性在支持逐行读取系统上的包括交互式编辑,历史替换以及代码补全。检测是否支持命令行编辑的最快方法是在Python解释器的第一个提示符处输入Control-P,如果电脑发出哔哔声音,则支持命令行编辑;参考附录 Interactive Input Editing and History Substitution获取对键的介绍。如果什么也没有发生,或者^P重复输出,则不支持命令行编辑;只能使用退格键移除当前行的字符。

Python解释器与Unix shell有些类似:当连接终端设备使用标准输入时,解释器交互读取和执行命令;当使用文件名参数或者文件作为标准输入时,解释器从文件中读取并执行脚本

另一种启动Python解释器的命令是:python -c command [arg]...,可在命令行直接执行语句,类似shell的 -c 选项。由于Python语句通常包含空格或者其他对于shell而言的特殊字符,通常建议使用单引号讲整个命令引用起来。

一些Python模块作为脚本也是很有用的。这些模块可以使用python -m module [args]..来调用,该命令执行module的源文件,就像在命令行输入其完整路径名调用一样。

当执行脚本文件时,有时候需要在运行脚本之后进入交互模式。可是在脚本之前加上 -i 来实现。

Command line and environment 中有关于所有命令行选项的描述。

2.1.1 Argument Passing

通过解释器执行脚本时,脚本名字以及其后额外的参数变为一个字符串列表,并且被赋值给sys模块中的argv变量。可以通过执行import sys来访问这个列表。该列表的长度至少是1;当没有指定脚本和参数时,sys.argv[0]是空字符串。当脚本名字是'-'(表示标准输入)时候,sys.argv[0]被设置为'-'。当使用了-c 命令时,sys.argv[0]被设置为-c。当使用了-m模块时,sys.argc[0]被设置为本地模块的全名。在-c 命令或者-m 模块之后的选项不会被Python解释器的选项处理机制所截获,而是放入sys.argv中供命令或者模块处理。

2.1.2 Interactive Mode

当命令从终端读取时,称解释器处于交互模式中。在这个模式中,解释器使用主提示符提示下一命令的输入,通常使用三个大于符号(>>>);使用从属提示符提示连续行的输入,默认使用三个逗号(...)。解释器启动后,在打印第一个提示符之前,会打印一条以其版本号和版权提示开头的欢迎语句:

$ python3.6Python 3.6 (default, Sep 16 2015, 09:25:04)[GCC 4.8.2] on linuxType "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!

交互模式的更多信息,参见 Interactive Mode。

2.2 The Interpreter and Its Environment

2.2.1 Source Code Encoding

默认情况下,Python源文件默认以UTF-8编码。使用这种编码,世界上大多数语言的字符可以同时在字符串常量,标识符以及注释中使用——虽然标准库标识符只使用了ASCII字符,这是任何可移植代码都应该遵循的约定。为能够正确展示所有字符,编辑器必须使用UTF-8读取文件,并且必须使用支持文件中所有字符的字体。

在文件第一行加入特殊注释行可以为文件指定不同编码方式。语法如下:

# -*- coding: encoding -*-

这里的encoding必须是Python支持的有效编码

例如,为声明使用Windows-1252,源文件首行应该如下:

# -*- coding: cp-1252 -*-

首行规则有一个例外,即当源码以UNIX “shebang” line开始。这种情况下,编码声明应该加到第二行,例如:

#!/usr/bin/env python3# -*- coding: cp-1252 -*-

Footnotes

[1] Unix中,Python3.x解释器并没有以可执行名字python安装,以便于不与同时安装的Python2.x冲突。