Python 3.8.0 教程 —— 2. 使用Python解释器

Posted 东浪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 3.8.0 教程 —— 2. 使用Python解释器相关的知识,希望对你有一定的参考价值。

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发生冲突。

以上是关于Python 3.8.0 教程 —— 2. 使用Python解释器的主要内容,如果未能解决你的问题,请参考以下文章

New in Python 3.8.0

为啥 Python 3.8.0 允许在不使用“非本地”变量的情况下从封闭函数范围更改可变类型?

PyWin32和Python 3.8.0

无法在 Python 3.8.0 的命令行上运行 python 文件;它改为调用 python 解释器

LinuxDebian或者Ubuntu安装Python3.8和pip3

Python零基础入门教程:Windows/Mac 安装使用 Python 环境 +jupyter notebook