Python3 解释器

我们通常会把编写的Python代码保存到以.py为扩展名的文本文件中。如果要运行Python代码,就需要一个Python解释器去执行.py文件。

在Linux/Unix的系统上,默认安装的 Python 版本通常为 2.x。一台机器上可以同时安装Python的多个版本。


我们可以将 python3.x 安装在 /usr/local/python3 目录中,安装完成后,再将路径 /usr/local/python3/bin 添加到 Linux/Unix 操作系统的环境变量中,这样就可以通过 shell 终端启动 Python3了。

$ PATH=$PATH:/usr/local/python3/bin/python3    # 设置环境变量
$ python3 --version
Python 3.7.4

在Window系统下你可以通过以下命令来设置Python的环境变量,假设你的Python安装在 C:\Python3 下:

set path=%path%;C:\python3

 

1. Python解释器版本

由于整个Python语言从规范到解释器都是开源的,任何人都可以编写解释器,所以出现了多种适用不同场景的Python解释器。

1)CPython

当我们从Python官方网站下载并安装好Python 3.x后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。

CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。

2)IPython

IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。

CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

3)PyPy

PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。

绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。

4)Jython

Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

5)IronPython

IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

 

2. Python交互式编程

我们可以在命令提示符中输入"Python"命令来启动Python解释器:

$ python3

执行以上命令后,出现如下窗口信息:

$ python3
Python 3.7.4 (default, Aug 13 2019, 15:17:50) 
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information. 

在 python 提示符中输入以下语句,然后按回车键查看运行效果:

print ("Hello, Python!");

以上命令执行结果如下:

Hello, Python!

当键入一个多行结构时,续行是必须的。我们可以看下如下 if 语句:

>>> flag = True
>>> if flag :
...     print("flag 条件为 True!")
... 
flag 条件为 True!

 

3. Python脚本式编程

将如下代码拷贝至 hello.py文件中:

print ("Hello, Python!");

通过以下命令执行该脚本:

python3 hello.py

输出结果为:

Hello, Python!

在Linux/Unix系统中,你可以在脚本顶部添加以下命令让Python脚本可以像SHELL脚本一样可直接执行:

#! /usr/bin/env python3

然后修改脚本权限,使其有执行权限,命令如下:

$ chmod +x hello.py

执行以下命令:

./hello.py

输出结果为:

Hello, Python!