
1.5 使用文本编辑器和命令行编写和执行Python源文件程序
Python解释器命令行采用交互方式执行Python语句,其优点是方便、直接,但是在交互式环境下需要逐条输入语句,且执行的语句没有保存到文件中,因而不能重复执行,故不适合于复杂规模的程序设计。
用户可以把Python程序编写成一个文本文件,其扩展名通常为.py,然后通过Python解释器编译执行。
使用文本编辑器和命令行编写和执行Python源文件程序的过程包括以下3个步骤。
(1)创建Python源代码文件,即扩展名为.py的文件,例如hello.py。
(2)把Python源代码程序文件编译成字节码程序文件,即扩展名为.pyc的文件,例如hello.pyc。Python的编译是一个自动过程,用户一般不必在意它的存在。编译成字节码可以节省加载模块的时间,提高效率。
(3)加载并解释执行Python程序。
编写Python源代码文件程序并通过Python编译器/解释器执行程序的流程如图1-12所示(以hello.py为例)。

图1-12 编写、编译和执行Python程序
1.5.1 编写输出“Hello,World!”的程序
使用文本编辑软件(例如Windows记事本Notepad.exe)在“C:\pythonpa\ch01”目录下创建程序文件hello.py。
准备工作:创建用于保存源文件的目录。打开资源管理器,在C盘根目录中创建子目录pythonpa,然后在“C:\pythonpa”下创建子目录ch01。
注意:本书正文源代码保存在“C:\pythonpa”中的各章节子目录下,例如第1章的源代码保存在“C:\pythonpa\ch01”中,依此类推。
【例1.16】 使用文本编辑器(记事本)编写输出“Hello,World!”的程序。
(1)运行Windows记事本程序。
(2)在记事本中输入程序源代码,如图1-13所示。

图1-13 使用文本编辑器(记事本)编写输出“Hello,World!”的程序
(3)将文件另存为hello.py。通过选择记事本的“文件”|“另存为”命令,将源程序文件hello.py保存到“C:\pythonpa\ch01”中。注意:“保存类型”选择“所有文件”,“编码”选择UTF-8,如图1-14所示。

图1-14 保存源程序文件hello.py到“C:\pythonpa\ch01”中
1.5.2 输出“Hello,World!”程序的源代码分析
第1行为注释。Python注释以符号#开始,到行尾结束。
第2行调用内置库的print()函数,输出“Hello,World!”。
1.5.3 运行Python源代码程序
在Windows命令提示符窗口中输入命令行命令“python C:\Pythonpa\ch01\hello.py”,直接调用Python解释器执行程序hello.py,并输出结果。
用户也可以在Windows命令提示符窗口中输入命令行命令“C:\Pythonpa\ch01\hello.py”,间接调用Python解释器执行程序hello.py,并输出结果。
注意:在安装Python后,Windows关联扩展名为.py的文件的默认打开程序为Python Launcher for Windows(Console)。
【例1.17】 使用Windows命令提示符窗口运行hello.py。
(1)打开Windows命令提示符窗口。单击“开始”按钮,选择“所有应用”|“Windows系统”|“命令提示符”命令,打开Windows命令提示符窗口,如图1-15所示。
(2)直接调用Python解释器执行程序hello.py。输入命令行命令“python C:\pythonpa\ch01\hello.py”,按Enter键执行程序。
(3)间接调用Python解释器执行程序hello.py。输入命令行命令“C:\pythonpa\ch01\hello.py”,按Enter键执行程序。
(4)切换到工作目录,即输入“cd C:\pythonpa\ch01”,然后输入命令行命令“python hello.py”,按Enter键执行程序。
(5)切换到工作目录“C:\pythonpa\ch01”,然后输入命令行命令“hello.py”,按Enter键执行程序。

图1-15 使用Windows命令提示符窗口运行hello.py
【例1.18】 使用资源管理器运行hello1.py。
(1)运行Windows记事本程序,编写hello1.py程序,hello1.py程序的内容如下。


图1-16 使用资源管理器运行hello1.py
(2)在资源管理器中双击“C:\pythonpa\ch01”目录下的hello1.py文件,Windows自动调用其默认打开程序Python Launcher for Windows(Console)解释执行hello1.py源程序,如图1-16所示。
hello1.py程序中每一行代码的含义如下。
- 第1行代码导入库模块random。Python可以导入和使用功能丰富的标准库或扩展库。
- 第2行代码调用内置库函数print()输出“Hello,World”。
- 第3行代码使用random库中的choice()函数在0~9中随机选择一个数并输出。
- 第4行代码调用内置库函数input()。用户按Enter键,程序结束运行。
注意:hello1.py文件最后包含一个函数input(),用于等待用户输入,按Enter键后,程序结束运行,并关闭窗口。如果不包含该函数,则双击hello1.py,程序运行后会自动关闭Windows命令提示符窗口,从而无法观察到程序运行的结果。
random是Python的标准模块,其具体使用请参见本书第14章中的相关内容。
1.5.4 命令行参数
在操作系统命令行运行程序时可以指定若干命令行参数。例如:

在Python程序中导入sys模块后可以通过列表sys.argv访问命令行参数。argv[0]为Python脚本名,例如“c:\test.py”;argv[1]为第1个参数,例如Para1;argv[2]为第2个参数,例如Para2;依此类推。
【例1.19】 命令行参数示例(hello_argv.py)。在操作系统命令行运行Python程序时根据所指定的命令行参数显示输出相应的Hello信息。

程序运行结果如图1-17所示。

图1-17 根据命令行参数显示输出