20252417 2026-4-15 《Python程序设计》实验二报告
课程:《Python程序设计》
班级: 2524
姓名: 艾家程
学号:20252417
实验教师:王志强
实验日期:2026年4月13日
必修/选修: 公选课
1.实验内容
(1)编写计算器程序
设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。
考核基本语法、判定语句、循环语句、逻辑运算等知识点。
(2)用LLM生成一个计算器程序
介绍相关功能,并分析生成的程序代码含义。
对比分析自写程序与生成程序的区别(好与坏)。
2. 实验过程及结果
2.1程序的调试与运行

运行结果

2.2LLM生成代码

LLM生成代码运行

2.3代码对比
LLM生成的程序的优点有
- 功能更丰富:除基本运算外,新增平方根、阶乘、三角函数、对数等高级数学函数,及历史记录、内存存储/读取、清除等实用功能。
- 错误处理更完善:通过try-except捕获除零、负数开方、非整数阶乘等异常,避免程序崩溃;输入非数字时循环提示重输,而非直接报错。
- 用户体验更友好:采用菜单式交互(选项0-18),逻辑清晰;支持查看/清除历史记录、设置当前值,操作更灵活。
- 代码结构更优:用Calculator类封装功能,模块化强,便于扩展;通过get_number_input统一处理输入验证,减少重复代码。
- 健壮性更强:对边界情况(如阶乘需非负整数、对数需正数)做严格校验,确保计算合法性。
2.4Gitee代码托管

3. 实验过程中遇到的问题和解决过程
问题1:输入非数字(如字母)时程序崩溃,无法继续计算。
问题1解决方案:用try-except包裹输入转换(float(input())),循环提示“请输入有效数字”直至输入合法。
问题2:执行除零(/0)、负数开方(sqrt(-1))等非法运算时程序报错终止。
问题2解决方案:在各运算方法(如divide/square_root)中添加条件判断(如if b == 0: raise ValueError),主函数用try-except捕获异常并返回错误提示(如“错误:除数不能为零”)。
其他(感悟、思考等)
通过本次实验,加强了对基本语法、判定语句、循环语句、逻辑运算等知识点的理解。从LLM生成的代码中学到了如何让程序应对各种错误输入,今后写代码也要注意程序健壮型,代码可读性等问题。
参考资料
-
《Java程序设计与数据结构教程(第二版)》
-
《Java程序设计与数据结构教程(第二版)》学习指导
