20252217贾子墨 实验二 《Python程序设计》实验报告
20252217 实验二《Python程序设计》实验报告
课程:《Python程序设计》
班级:2522
姓名:贾子墨
学号:20252217
实验教师:王志强
实验日期:2026年4月13日
必修/选修:公选课
1. 实验内容
(一)实验内容
-
编写计算器程序
设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。
考核基本语法、判定语句、循环语句、逻辑运算等知识点。 -
用LLM生成一个计算器程序
介绍相关功能,并分析生成的程序代码含义。
对比分析自写程序与生成程序的区别(好与坏)。
2. 实验过程及结果
(1)编写计算器
在课上,我首先跟着老师编写了计算器的大概框架,接着自己修改了一些细节,并增加了给一个数字开方的功能。
所有计算的功能均是用自定义函数实现,并运用了 math 函数来计算对数、开方、次方,输出使用格式化字符。
本计算器可实现的功能:
- 加减乘除、取余、求对数、求次方、开方
- 加减乘除、取余、求对数、求次方:需输入两个数字
- 开方:只需输入一个数字
- 通过
eval格式,输入的数字可以是整数、小数、复数
一次计算完成后,用户可选择是否继续使用计算器,该功能通过循环实现。
代码运行结果:
- 加法:
![image]()
- 减法:
![image]()
- 乘法:
![image]()
- 除法:
![image]()
- 取余:
![image]()
- 求对数:
![image]()
- 求次方:
![image]()
- 开方:
![image]()
(2)用LLM生成一个计算器程序
以下为输入提示词“帮我生成一个炫酷并且不用下载其他插件的计算器python程序”
deepseek生成的代码运行截图:


功能介绍:
- 基础运算:加
+、减-、乘*、除/ - 平方、开方、圆周率、三角函数
- 有生成随机数、显示具体日期时间等拓展功能
- 连续计算、退出
优缺点对比
1. LLM生成代码
优点:
- 可直接输入数学式子,支持复杂混合运算,不用分步
- 扩展新功能非常容易
- 有清晰说明、示例
- 输入错误不崩溃
缺点:
- 错误提示不够友好,所有异常只显示是输入存在错误,不知道是语法错、除零错还是格式错
2. 自写代码
优点:
- 逻辑简单,每个运算一个函数和
if-elif匹配 - 输入流程可控:先选符号再输入数字
- 不会出现表达式语法错误
缺点:
- 不能直接输入
1+2*3,必须分步算,比较麻烦 - 不支持混合运算
- 代码重复多,每个运算符都要写重复逻辑
- 加一个新功能要改很多地方
3. 实验过程中遇到的问题和解决过程
问题1:对格式化字符不够熟悉,容易少打括号
解决方案:
熟能生巧,先理解格式化字符,自己再多打了几行代码之后,既充分了解了格式化字符的定义,也进一步学会了如何使用它。
问题2:部分计算功能不能完全实现
如在写开方的功能时,因为开方一次只能计算一个数字,所以涉及用户要输入一个数字还是两个数字,开始时逻辑不够清晰,导致代码运行有误。
解决方案:
思考逻辑之后,改变了提示用户输入数字语句的位置,代码即可正常运行。
其他(感悟、思考)
自己动手编写这段计算器代码,让我体会到从零到实现功能的成就感,也掌握了函数定义、格式化字符等基础编程知识。
虽然代码较为繁琐,逻辑比较简单,但这是我独立思考完成的成果,也感受到了冗余代码带来的不便。
通过和deep seek生成的代码对比,我也懂得了好的代码不仅要能实现功能,更要简洁高效、易于完善。









浙公网安备 33010602011771号