2.1. 调用(Invoking) 解释器
Python解释器通常安装在系统的/usr/local/bin/python3.8
位置; 通过将/usr/local/bin
放在Unix shell的搜索路径(search path)中,就可以通过在Shell窗口中输入以下命令来启动它:
python3.8
1 由于选择解释器所在的目录是一个安装选项,所以可以在其他地方安装; 请与您的本地 Python专家或系统管理员联系。(例如,/usr/local/python
是一个流行的替代位置。)
你已经下载安装来自Microsoft Store微软商店的Python在Windows机器上,python3.8
命令将是可用的。如果你安装了py.exe launcher 启动程序,可以使用 py
命令。请参见:Excursus: Setting environment variables 来设置其他方式启动Python。
在主提示符位置输入一个EOF文件结束符 (即 Unix上的Control-D,Windows上的 Control-Z ) 将退出解释器,并返回退出状态码 0。如果不起作用的话,可以通过藏尸使用 quit()
命令退出解释器。
解释器的行编辑特性包括交互式编辑、历史替换和支持GNU Readline库的系统的代码补全。要查看是否支持命令行编辑,最快的方法可能是在得到的第一个Python提示符后键入Control-P。如果它发出嘟嘟响,你有命令行编辑(command line editing)功能; 有关键的介绍,请参阅附录Interactive Input Editing and History Substitution。如果什么都没有发生,或者^P
被回显,命令行编辑是不可用的; 你只能使用backspace退格来删除当前行的字符。
解释器的操作有点像Unix shell: 当使用连接到tty设备的标准输入调用它时,它以交互方式读取和执行命令; 当使用文件名参数或将文件作为标准输入调用时,它将从该文件中读取并执行其中的脚本。
启动解释器的第二种方法是python -c command [arg] ...
命令,它在命令中执行语句,类似于shell的-c
选项。由于Python语句通常包含空格或其他对shell来说特殊的字符,因此通常建议使用单引号来对命令进行整体引用。
一些Python模块作为脚本也很有用。这些可以使用 python -m module [arg] ...
来调用,该命令将执行模块源文件就好像您在命令行中拼出了它的全名一样。
当使用脚本文件时,有时能够运行脚本并在之后进入交互模式是很有用的。这可以通过在脚本之前传递-i
来实现。所有命令行选项被描述在Command line and environment。
2.1.1. 传递参数
当解释器知道后,脚本名和其他参数随后被转换成字符串list列表,并分配给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读取命令时,解释器处于交互模式 (interactive mode)。在这种模式下,它用主提示符提示下一个命令,通常是三个大于号(>>>
); 对续行它用辅助提示符提示,默认情况下是三个点(...
)。在显示第一个提示符之前,解释器会显示一条包含有版本号和版权声明的欢迎消息:
$ python3.8 Python 3.8 (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!
有关交互模式的更多信息,请参阅 Interactive Mode.
2.2. 解释器及其环境
2.2.1. 编码源代码
默认情况下,Python源文件被视为用UTF-8编码的。在这种编码中,世界上大多数语言的字符可以同时用于字符串文字、标识符和注释——尽管标准库只使用ASCII字符作为标识符,这是任何可移植代码都应该遵循的约定。要正确显示所有字符,您的编辑器必须接收文件是UTF-8编码的,并且必须使用支持文件中所有字符的字体。
要声明一个编码而不是默认编码,应该在文件的第一行添加一个特殊的注释行。语法如下:
# -*- coding: encoding -*-
其中编码是Python支持的一种有效的codecs
编解码器。
例如,要声明使用Windows-1252编码,你的源代码文件的第一行应该是:
# -*- coding: cp1252 -*-
第一行规则的一个例外是,源代码从UNIX “shebang” line行开始。在这种情况下,应该将编码声明添加到文件的第二行。例如:
#!/usr/bin/env python3 # -*- coding: cp1252 -*-
脚注:
- 1
-
在Unix上,Python 3.x解释器默认是没有安装名为
python
的可执行文件,因此它不会与同时安装的Python 2.x发生冲突。
原文地址:https://www.cnblogs.com/ljd0429/p/12051210.html