
1.3 在Linux下使用Python 3.8.2
前面提到本书只介绍在CentOS命令行终端里使用Python的方法,在GNOME桌面环境下使用Python的方法不在本书的讨论范围内。下面介绍交互模式和脚本模式在CentOS中的使用方法。
1.3.1 交互模式
我们知道,在CentOS的命令行终端里输入命令python3.8即可进入Python 3.8.2的解释器,也就进入了Python的交互模式,如下图所示。

在Python解释器里输入第一段代码print ('hello, world!'),解释器随即打印出了“hello,world!”的内容。这种“即时反馈”的特性是交互模式下特有的,脚本模式下不具备,如下图所示。

1.3.2 脚本模式
在CentOS的命令行终端里,我们可以使用文本编辑器来创建脚本,CentOS有几种常见的文本编辑器,如emacs、nano、vi等。这里介绍用vi创建Python脚本的方法。
关于vi的用法本书将只做简单介绍。另外,vi有一个加强版本叫作vim,两者的具体区别不在本书的讨论范围内。读者只需要知道在创建Python脚本时,vim支持语法高亮,而vi不支持。
vi不支持语法高亮,仅显示PuTTY默认字体的颜色,如下图所示。

vim支持语法高亮,显示彩色字体,如下图所示。

除此之外,两者对Python的支持并无本质区别,是否喜欢语法高亮全凭个人喜欢。只需要注意一点:vi是CentOS安装时自带的文本编辑器,vim则需要通过输入命令yum install vim安装后才能使用。
下面用实例介绍使用vi创建Python脚本的方法。
首先输入命令vi test.py,创建一个名为test.py的Python脚本,如下图所示。

进入vi后,按“i”键进入输入模式(屏幕左下角会显示“- - INSERT - -”),输入第一段代码print ('hello, world!'),如下图所示。

然后按“ESC”键,在屏幕左下角的“- - INSERT - -”消失后,接着输入:wq,按回车键后即可保存文件并退出vi,如下图所示。

之后回到命令行终端,输入ls即可看到刚刚创建成功的Python脚本test.py,如下图所示。

1.3.3 运行Python脚本
与Windows命令行终端一样,在CentOS命令行终端也是通过输入python xxx.py来运行Python脚本的,不同的是,因为本书以Python 3.8.2为例,这里需要把python换成python3.8,写成python3.8 xxx.py来运行脚本,如下图所示。

1.3.4 Shebang符号
在Linux和UNIX里,符号#!叫作Shebang,通常可以在Linux/UNIX系统脚本中第一行的开头看到它。它的作用是指明执行脚本文件的解释程序。写在Shebang后面的解释程序如果是一个可执行文件,则当执行脚本时,Shebang会把文件名作为参数传递给解释程序去执行。比如python3.8 test.py中的python3.8是解释程序,test.py是文件名,使用Shebang后,可以省去解释程序,把python3.8 test.py写成./test.py就可以运行Python脚本了。另外,Shebang指定的解释程序必须为可执行程序,否则系统会报错“Permission denied.”。
因此,如果你觉得每次都需要输入命令python2、python3或者python3.8来运行脚本比较麻烦,则可以在脚本的开头部分使用Shebang符号,然后在其后面加上/usr/bin/env python3来指定python3为解释程序(同理,如果你想使用python2来做解释程序,则可以写成#!/usr/bin/env python2),如下图所示。

将脚本保存并退出后,用chmod命令将test.py改为可执行,如下图所示。

然后就可以用./test.py来运行脚本,省去每次都必须输入命令python2、python3或者python3.8的麻烦,如下图所示。
