1.4 Python程序的运行
1.4.1 Python程序的运行原理
Python是一种脚本语言,编辑完成的源程序,也称源代码,可以直接运行。从计算机的角度看,Python程序的运行过程包含两个步骤:解释器将源代码翻译成字节码(即中间码),然后由虚拟机解释执行,如图1-13所示。
图1-13 Python程序的运行原理
Python程序文件的扩展名通常为.py。在执行时,首先由Python解释器将.py文件中的源代码翻译成中间码,这个中间码是一个扩展名为.pyc的文件,再由Python虚拟机(Python Virtual Machine,PVM)逐条将中间码翻译成机器指令执行。
需要说明的是,.pyc文件保存在Python安装目录的__pycache__文件夹下,如果Python无法在用户的计算机上写入字节码,字节码文件将只在内存中生成,并在程序结束运行时自动丢弃。而主文件(直接执行的文件)因为只需要装载一次,并没有保存.pyc文件。当Python源文件用于import导入时,将会生成.pyc文件,并且在__pycache__文件夹下可以观察到该文件。
pyc文件可以重复使用,并且可以提高执行效率。
1.4.2 建立和运行Python程序
前面提到的Python文件、Python程序、Python程序文件是同义的,都是指Python的程序,程序是由若干行代码组成的,通常完成一定的功能。
运行Python程序有两种方式:交互方式和文件方式。交互方式是指Python解释器即时响应并运行用户的程序代码,如果有输出,则显示结果。文件方式即编程方式,用户将Python代码写在程序文件中,然后启动Python解释器批量执行文件中的代码。交互方式一般用于调试少量代码,文件方式则是最常用的编程方式。多数计算机的编程语言只有文件执行方式,Python的交互模式为代码的易学、易理解提供了可能。下面在Python环境下,以求一组数中的最大值为例来说明两种方式的启动和执行方法。
1. Python交互执行方式
在Windows的“开始”菜单中执行[开始]/[Python 3.6]/[Python 3.6(32-bit)]命令,启动Python交互式运行环境,逐行输入代码,每输入完一条语句并换行后,就直接交互执行,如图1-14所示。
图1-14 在Python交互方式下执行代码
每行代码均以Enter键结束,之后立即执行。如果是打印语句则显示输出结果。
在>>>提示符后,输入exit()或者quit()可以退出Python的运行环境。
2. IDLE交互执行方式
前面已经介绍过,IDLE是Python内置的集成开发环境,在Windows的“开始”菜单中执行[开始]/[Python 3.6]/[IDLE(Python 3.6 32-bit)]命令,启动IDLE交互方式,输入代码,实现求一组数据中最大值和最小值的程序,每输入一条语句后,即直接交互执行,如图1-15所示。
图1-15 在IDLE交互方式下执行代码
比较Python交互方式和IDLE交互方式,可以看出,虽然代码执行的过程相似。但IDLE交互方式提供了更多快捷的操作方式,比Python交互方式使用起来更加方便。另外,上面两个例子中的数据分别用方括号[]和圆括号()标记,这是两种不同的组合数据类型,我们将在后续章节中详细介绍。
3. IDLE程序文件执行方式
在Windows的“开始”菜单中执行[开始]/[Python 3.6]/[IDLE(Python 3.6 32-bit)]命令,启动IDLE,打开图1-15所示的IDLE窗口。
在IDLE窗口中,执行[File]/[New File]命令,或按快捷键Ctrl+N,打开一个程序编辑窗口,在其中输入程序代码,如图1-16所示。
图1-16 在IDLE窗口中编写并运行程序
这个程序编辑窗口不是交互窗口,而是IDLE的集成开发环境,该环境具备Python语法高亮辅助的编辑器,可以进行代码的编辑。在其中输入Python程序后,保存程序为以.py为扩展名的文件,如program1.py,按快捷键F5或在菜单栏中选择[Run]/[Run Module]命令,将在IDLE环境中显示运行结果,如果程序出现错误,将给出错误的提示,用户修改程序后,可以继续调试运行。
在上述3种程序运行方式中,IDLE的交互方式适合初学者学习语句或函数的功能,每执行一行代码即可看到运行结果,既简单,又直观,但程序代码无法保存。IDLE的程序方式适合书写多行代码,方便用户编程,在实际应用中使用得比较多。除此之外,在Windows操作系统中,双击Python源文件也可以执行程序,但这种方式在实际应用中较少使用。