# 20231108 2023-2024-2 《Python程序设计》实验二报告
课程:《Python程序设计》
班级: 2311
姓名: 陈震浩
学号:20231108
实验教师:王志强
实验日期:2024年3月28日
必修/选修: 公选课
## 1.实验内容
设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。
考核基本语法、判定语句、循环语句、逻辑运算等知识点
## 2. 实验过程及结果
(1)首先,我们要编写四则运算的对应代码,并分别用def定义对应函数,方便在主函数中调用;
特别注意除数为0时应用div()函数会返回错误,要在函数定义中提前建立容错机制,提高代码的健壮性。
(2)编写主函数中的分支循环部分
这里的flag变量恒为True,循环将一直进行下去,之后我们将添加一句话,让我们掌握是否继续运算的主动权。
两部分的运行结果如下图所示;
可见运算都是正确的;但是我们不能有效的使代码停下来,最后一行代码仍在让我们输入变量a 的值。
(3)设计运算控制机制
这里留给读者(特别是wangzq老师)一个问题:如何设计flag变量的赋值和判断代码,使我们达到有效控制运算次数的目的呢?
I 限制运算次数
引入计数变量cnt(int类型),初始赋值为零,每执行一次循环加一,在最开始让用户手动输入希望进行几次运算。代码如下:
运行结果如下:
II 每次运算后都询问用户是否要继续进行运算
这里在while循环体内添加一条判断语句,如果输入的是“Y/y”,则无视该条执行语句进行下一轮循环,但若输入了“N/n”,则flag为False,新一轮循环条件不成立,退出循环。
代码如下:
运行效果如下:
(4)扩充函数库,使计算器能进行更多的运算
并同时在下方的分支结构中添加这些选项,以下是运行结果:
## 3. 实验过程中遇到的问题和解决过程
- 问题1:在每次运算后都要询问用户是否要继续运算的程序中,出现了程序区分大小写的情况,导致本该继续运行的程序不能继续运行。
- 问题1解决方案:通过(str).lower函数,将输入的字母统一转换为小写字母,再进行判断。
## 其他(感悟、思考等)
用Python编写计算器具有逻辑清晰,简洁明了的特点,通过这次计算器代码的实践我深刻了解了分支结构背后的逻辑,通过flag变量的设置,我们能够实现有效控制运算的目的,也是很宝贵的经验。
## 参考资料
- [Python语言基础—编写计算器](Python语言基础-编写计算器_用python计算器编写-CSDN博客)