本实战技能将创建多个函数,实现简单的 计算器功能。程序运行的时候,首先,会要求 用户选择运算的模式;其次,用户再输入待运 算的两个数字;最后,再调用函数将运行结果 展示出来。运行程序得到的结果如下图所示。
【技术要点】
本实战技能将大量使用函数,函数是由关键字def实现的具有一定用途的工具。
语法说明如下。
1. def functionname([parameterlist]):
2. ['''comments''']
3. [functionbody]
参数说明如下。
① functionname:函数名称,在调用函数时使用。
② parameterlist:用于向函数中传递参数。
③ comments:为函数指定注释,注释的内容通常是函数的功能和参数的作用,可以为用户提供友好提示和帮助。
④ functionbody:用于指定函数体,即该函数被调用后,要执行的功能代码。
调用函数也就是执行函数,如果把创建的函数理解为一个可以多次重复使用并且具有某种用途的工具的话,那么该如何使用这个工具呢?
语法说明如下。
1. functionname([parameterlist])
参数说明如下。
① functionname:函数名称。
② parameterlist:用于向函数中传递参数的值。如果需要传递多个参数值,则各参数值之间使 用逗号“,”分隔开,如果该函数没有参数,则直接写一对小括号“( )”就可以了。
【主体设计】
计算器的实现流程如下图所示。
计算器的实现具体通过以下6个步骤实现。
Step1:调用input( )函数,要求用户输入选择的计算模式,使用choice记录。
Step2:再次调用input( )函数,要求用户输入待计算的两个数字,使用num1和num2记录。
Step3:编写add( )函数、subtract( )函数、multiply( )函数、divide( )函数,实现计算的功能。
Step4:编写show( )函数,实现结果展示。
Step5:根据选择的模式,然后调用相应的计算模式,对用户输入的数字进行计算。
Step6:最后调用show( )函数,对计算结果进行输出。
【编程实现】
本实战技能使用Jupyter Notebook进行编写,建立相关的源文件【计算器的实现.ipynb】, 在相应的【cell】里面编写代码。具体步骤及代码如下所示。
Step1:调用input( )函数,获得用户选择的模式和待计算的数字,代码如下所示。
1. # 获取用户输入待计算的数字
2. # 首先选择运算技能
3. print(" 选择运算:")
4. print("1、相加 ")
5. print("2、相减 ")
6. print("3、相乘 ")
7. print("4、相除 ")
8. choice = input(" 输入你的选择 (1/2/3/4):")
9. # 然后获取需要运算的数字
10. num1 = int(input(" 输入第一个数字 : "))
11. num2 = int(input(" 输入第二个数字 : "))
Step2:编写具有计算功能的函数,代码如下所示。
1. # 定义具有相加功能的函数
2. def add(x, y):
3. ''' 相加 '''
4. return x + y
5. # 定义具有相减功能的函数
6. def subtract(x, y):
7. ''' 相减 '''
8. return x - y
9. # 定义具有相乘功能的函数
10. def multiply(x, y):
11. ''' 相乘 '''
12. return x * y
13. # 定义具有相除功能的函数
14. def divide(x, y):
15. ''' 相除 '''
16. return x / y
Step3:编写show( )函数,代码如下所示。
1. def show(choice, num1, num2):
2. if choice == '1':
3. print(num1, "+", num2, "=", add(num1, num2))
4. elif choice == '2':
5. print(num1, "-", num2, "=", subtract(num1, num2))
6. elif choice == '3':
7. print(num1, "*", num2, "=", multiply(num1, num2))
8. elif choice == '4':
9. print(num1, "/", num2, "=", divide(num1, num2))
10. else:
11. print(" 非法输入 ")
Step4:调用show( )函数,展示计算结果,代码如下所示。
1. # 展示输出
2. show(choice, num1, num2)