2.3.1 接收用户输入
前面我们所编写的程序都是通过Sublime Text工具直接运行的,Sublime Text通过配置脚本来执行Python文件,其无法与用户进行交互,若要让程序接收用户输入的数据,则需要使用终端来运行Python程序。
Python程序接收用户的输入有两种方式,一种是在程序执行时接收用户传递的参数,另一种是在程序运行时接收用户的鼠标或键盘操作事件。首先,创建一个新的Python文件,命名为3_input1.py,在其中编写如下测试代码:
import sys param_file = sys.argv[0] param_one = sys.argv[1] print(param_file) print(param_one)
在上面的代码中导入了sys模块,这个模块可以获取程序执行的系统相关数据,在程序运行时可以通过sys.argv列表获取到系统参数,这个参数列表中的第1个参数为所运行的Python文件的名称,之后为用户传入的自定义参数,我们可以在终端运行该Python程序。
首先打开终端程序(Mac OS系统),如果使用的是Windows系统,则可以使用CMD命令行程序。首先,从终端进入要执行的Python文件所在的目录(通过使用cd命令),之后输入如下指令进行程序的运行:
$python 3_input1.py data1
其中python为执行Python程序的指令,其后需要指定要执行的Python程序的文件名,之后可以添加任意多个自定义参数,这些自定义参数都将传递到Python程序执行时的系统参数列表中。执行指令,将在终端输出如下数据:
3_input1.py data1
如果需要接收更多的参数,使用空格进行分割即可,首先修改代码如下:
在终端使用如下指令即可进行加法运算:
python 3_input1.py 3 4
终端输入的结果为:
3 + 4 = 7
在程序开始执行时将参数传递进去是一种最简单的用户交互方式,但是其有很大的局限性,首先传参的时机只能是程序调用时,程序执行的过程中无法进行用户交互。其次,如果程序的逻辑是需要分步进行的,每一步都需要与用户进行交互,根据用户的输入来进行程序逻辑的选择,这种传参方式就很难做到。更多时候,我们会使用Python中的输入函数来接收用户的键盘输入,使程序拥有与用户交互的能力。
调用Python内置的input函数可以接收一次用户键盘输入。新建一个名为4_input2.py的Python文件,在其中编写如下测试代码:
string = input("请输入:") print("用户输入的内容为:%s" % string)
需要注意,上面的测试代码虽然十分简单,但是我们依然需要使用终端执行,Sublime Text工具无法接收用户的输入。使用终端运行上面的程序后,可以发现这个程序和我们之前所执行的程序有所不同,之前的程序一旦执行很快就会执行完成,而终端执行这个程序后会首先输出“请输入:”在终端屏幕上,之后会暂停等待用户的输入,用户输入内容后,程序会继续运行到结束,终端输出如下:
请输入:HelloWorld
用户输入的内容为:HelloWorld