20254111 实验二《Python程序设计》实验报告
20254111 2025-2026-2 《Python程序设计》实验2报告
课程:《Python程序设计》
班级: 2541
姓名: 周笑凡
学号: 20254111
实验教师:王志强
实验日期:2026年4月7日
必修/选修: 专选课
1.实验内容
(1)编写计算器程序
①设计并完成一个完整的应用程序,完成加减乘除模等运算。
②考核基本语法、判定语句、循环语句、逻辑运算等知识点。
(2)用LLM生成一个计算器程序
①介绍相关功能,并分析生成的程序代码含义。
②对比分析自写程序与生成程序的区别(好与坏)。
2. 实验过程及结果
(1)编写计算器程序
①设计并完成一个完整的应用程序,完成加减乘除模等运算。
②考核基本语法、判定语句、循环语句、逻辑运算等知识点。
(一)首先初步编写程序:
利用def函数定义,“+、-、*、/、%、//”分别对应“sum、sub、mul、div、quo”。

(二)发现程序有一些不足的地方,与可以改进的地方:
a、除法运算不够严谨
当b数字为0时会出现程序错误

b、算法太少
只有加减乘除取模等基本运算
c、无法进行复数运算

d、这个程序只能进行一次计算
(三)针对程序的不足进行改进
a、完善除法算法


b、针对算法太少,添加对数、次方等运算。


运算结果如下:

c、将int变为eval,添加复数运算。

运算结果如下:

d、添加循环语句,使程序能够无限运行下去。


e、在原先的基础上美化程序

(2)用LLM生成一个计算器程序
①介绍相关功能,并分析生成的程序代码含义。
②对比分析自写程序与生成程序的区别(好与坏)。
(一)使用豆包生成一个简易计算器。

完整代码:




(二)介绍相关功能,并分析生成的程序代码含义:
1、(导入数学库)import math
作用:导入 Python 自带的数学工具库
程序要使用math.log()等函数,必须先导入数学工具库才能用。
2、print("===== 多功能循环计算器 =====")
print("支持运算:+ - * / % 商 平方 ln log10")
print("输入格式:数字 运算符 数字(例:5 + 3)")
print("输入 '退出' 关闭计算器\n")
作用:提示计算器的相关信息;\n 表示换行,能够让界面更整洁。
3、while True:
作用:while True 是永远成立的循环,让计算器一直运行、不停计算,直到用户输入“退出”才停止,符合计算器的功能。
4、if user_input == "退出":
print("计算器已关闭,感谢使用!")
break
判断:如果用户输入退出
break:立刻结束循环,程序关闭。
5、try:
try :尝试执行下面的代码
如果代码出错,程序不会崩溃,而是会给出提示。
6、if len(parts) == 2 and parts[1] == "平方":
num = float(parts[0])
result = num ** 2
print(f"结果:{num} ² = {result}\n")
continue
作用:判断输入是不是两个部分,且第二个是“平方”
float():把文字转成数字(小数)
** 2:平方运算
continue:算完平方,直接回到循环开头,继续等待下一次计算。
7、if len(parts) != 3:
print("输入格式错误!请按照 数字 运算符 数字 输入\n")
continue
作用:常规运算必须是“数字 运算符 数字”。如果不是这3部分,会提示错误,重新输入。
8、num1 = float(parts[0])
op = parts[1]
num2 = float(parts[2])
num1:第一个数字
op:运算符(+ - * / 等)
num2:第二个数字
9、if op == "+":
res = num1 + num2
elif op == "-":
res = num1 - num2
...
作用:每种运算对应一个公式,包含错误处理:除数不能为0;对数只能算正数。算完把结果存在res里。
10、print(f"结果:{num1} {op} {num2} = {res}\n")
作用:格式化打印:把数字、运算符、结果拼在一起显示。
11、except ValueError:
print("输入错误!请输入有效的数字\n")
作用:如果用户输入字母、符号等非数字,会触发这个错误提示,让这个计算器程序保持稳定。
(三)对比分析自写程序与生成程序的区别
1、生成程序的优点
①print("输入 '退出' 关闭计算器\n")
……
if user_input == "退出":
print("计算器已关闭,感谢使用!")
Break
优点:这几行代码让程序更具有完整性。
②使用了try语句,增加试错的机会,对新手(比如我)比较友好。
③if len(parts) != 3:
print("输入格式错误!请按照 数字 运算符 数字 输入\n")
continue
优点:此处有检查输入格式的作用,使程序更加具有严谨性。
④except ValueError:
print("输入错误!请输入有效的数字\n")
优点:有错误提示,严谨。
2、生成程序的不足
①我觉得豆包生成的这个用“num1”“num2”太麻烦了,不如自己写的a、b来的简洁,而且字母更多打字也麻烦。
3、比较自写程序和豆包生成程序
①自写程序中,a、b、符号要分三次进行输入,而豆包一次就把三部分输入完了,我觉得这步豆包做的更好。
②不过自写程序使用flag控制循环,这点豆包没有。
3. 实验过程中遇到的问题和解决过程
- 问题1:老师说要在原来基本运算的基础上多加一些算法,我本来想加上平方的,但是基础太差,在小红书上查询相关知识结果最后编写的程序还是一直出错。
- 问题1解决方案:我最后直接把平方变成乘方了,这样我自己也看得懂我在写什么。
- 问题2:写循环语句的时候总是忘记“\n”
- 问题2解决方案:反复提醒自己,下次应该不会忘记了。
- ...
3. 其他(感悟、思考等)
我觉得这次的实验很有趣。计算器是我们日常生活中经常会用到的工具,学会用代码编写计算器让我很有成就感。加减乘除这些感觉还稍微简单一点,但是取模、对数、乘方还有复数添加这些对我来说就稍微复杂。我觉得这次这个计算器比实验一的剪刀石头布好玩一点,期待下次实验。
参考资料
- [《零基础学Python》(https://pan-yz.cldisk.com/external/m/file/ebeadceffe1bf5812590a4f975e08c16)]
- [《Python程序设计》]

浙公网安备 33010602011771号