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


运行截图


2.2LLM生成程序编写









运行截图

2.3生成程序优点
1)功能更强、使用更自然:你自写版通常是“选运算符 + 输入两个数”,LLM 版支持直接输入完整表达式(含括号、优先级、ans、常量/函数),更像真实计算器,交互步骤更少。
2)结构更模块化、可扩展性更好:LLM 版把流程拆成“词法分析(tokenize)→ 解析/转后缀(to_rpn)→ 栈计算(eval_rpn)→ 命令循环”,后续想加新运算符/新函数/新命令,只需在对应模块补充规则,不用大改主流程。
3)鲁棒性与错误处理更完善:LLM 版通常会更系统地覆盖边界情况(括号不匹配、非法字符、除 0、参数不足等),并给出更明确的错误信息;自写版往往只处理少数典型错误,复杂输入更容易出问题。
3. 实验过程中遇到的问题和解决过程
问题1:多层循环在反复修改时容易出现逻辑错误,导致无法正确判入/判出循环。
方案:通过反复运行调试,重点用极端边界情况验证流程,逐步修正每一层循环的退出条件与分支判断。
问题2:难以用统一的参数类型同时兼容实数与复数的各项运算,输入格式与运算规则差异大,导致代码复杂度显著上升。
方案:参考手机标准计算器的基础功能定位,权衡实现成本与稳定性,最终选择聚焦实数运算,放弃复数运算以保证逻辑清晰与交互一致。
其他(感悟、思考等)
本次编写计算器程序让我对基础语法的实际运用有了更直观的理解。表面上是实现加减乘除等运算,但在加入菜单与重复计算后,多层循环的进入、退出与返回逻辑很容易出现偏差,需要通过反复运行调试来逐步理清流程。我在测试过程中重点输入空值、越界选项、除数为0等边界情况,借此定位问题并完善判断条件。功能取舍方面,我曾考虑加入复数运算,但实数与复数在输入形式、运算规则及结果展示上差异较大,会显著增加实现复杂度。最终参考常见计算器的基础定位,优先完成常用实数运算与三角函数,保证程序稳定、结构清晰,也更便于后续维护与扩展。

浙公网安备 33010602011771号