20254101 实验二《Python程序设计》实验报告

学号 2025-2026-2 《Python程序设计》实验二报告

课程:《Python程序设计》
班级: 2541
姓名: 李若涵
学号:20254101
实验教师:王志强
实验日期:2026年4月7日
必修/选修: 专选课

1.实验内容

(1)编写计算器程序

设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。考核基本语法、判定语句、循环语句、逻辑运算等知识点。

(2)用LLM生成一个计算器程序

介绍相关功能,并分析生成的程序代码含义。

对比分析自写程序与生成程序的区别(好与坏)。

2. 实验过程及结果

实验一 编写计算器程序
image
说明:
这些函数可分别实现加、减、乘、除、取余、整除六种运算。且根据 choice 的值能进入不同的分支,可使用相应的函数。
该计算器运行模式较为简单,用途较为朴实,可用于极为简易的计算,难以应对高级计算,故功能有限。
但该计算器函数界面及函数表达清晰易懂,对满足日常需求的计算者使用友好,能减小页面阅读和浏览的压力。

实验二 用LLM生成一个计算器程序
image
image
说明:
1、介绍功能
这是一个命令行计算器,能算的东西比普通计算器多不少。除实验一计算器的六种运算,该计算器还可进行幂运算、对数、平方根、自然指数、绝对值、三角函数运算,丰富了运算功能,可满足高级计算者的需求。
2、生成代码含义
(1)新增 operations 的大字典
它就是一张对照表:如果我们输入 "+",就去调用 add 函数,并且告诉程序“这个运算需要两个数”。即想加一个新运算,只需要在字典里加一行,而不用改后面的主程序,大大省下来编写程序的时间。
(2)get_number(prompt)的意义
该函数负责问我们要数字,如果不小心输入了字母或其他乱七八糟的东西,它不会崩溃,而是会一直问“请输入一个数字”,直到我们输入数字为止。
3、优缺点分析
与我编写的程序相比,LLM编写的程序具有以下优点:
(1)面对的计算者范围更大,考虑到了计算者的特殊计算需求。
(2)该计算器考虑到的使用者输入情况更多,在程序中有quit,即结束程序。如果输入 help,就是把菜单再打一遍。另外,万一中间出错了(比如除以0),程序不会崩溃,而是打印出错误原因,然后回到主菜单让我们继续。整个过程使用的连贯性更强,满足计算者的体验感。
与我编写的程序相比,LLM编写的程序具有以下缺点:
(1)输入过程过于繁复,太啰嗦:先选操作,再输a,如果需要再输b,而且每次输完一个问题还要回车。尤其是想连续算几个简单加法的时候,每次都得多敲几次回车,时效性差。
(2)菜单太长,挤占页面。高级功能可藏到 help 里就行了,没必要每次启动都铺出来。
(3)强制循环,没有一次性运行模式。不能自动退出,需输 quit 才退,多一步操作。可以加个参数或者选项,让我们选是一次性还是循环。

3. 实验过程中遇到的问题和解决过程

  • 问题1:我自己写的程序,选 - 号,输入 10 和 5,结果出来 15,变成了加法。
  • 问题1解决方案:检查前部分程序,因直接复制粘贴上部分程序,发现 elif choice == "-": 下面写的是 result = sum0(a,b)。需仔细检查调用函数
  • 问题2:我自己写的程序是一次性把 a 和 b 输完,再选操作。LLM那个是反的,先选操作,再根据操作问要几个数。我试了好几次加法,每次都得敲 + 回车,a 回车,b 回车,步骤多。
  • 问题2解决方案:我本来想改LLM程序让它也支持“先输两个数再选操作”,比如b的提示语改为 "请输入 b: (单目运算时会忽略)"。但算混合运算,用LLM的反而清晰。因此算连续加法可以用我编写的程序。该问题不算彻底解决

其他(感悟、思考等)

首先,自己编写程序的过程中,暴露出的问题大多源于粗心与经验不足。减法分支错用了加法函数对数输出的格式错误等,这些缺陷在代码审查时本应发现,但由于不太熟悉代码的相应含义,我未能及时发现。
其次,LLM生成的程序在功能完整性、错误处理明显优于我的版本。它支持多种运算、循环执行、结构清晰、扩展方便。然而,它在设计上与我个人“先输入两个数再选运算符”的习惯不相同,导致连续运算时操作步骤增多,体验下降。这说明LLM不能总是满足我们需求,在输入指令时可增加个人习惯等。
总的来说,这次实验让我体会到:编程不仅是写出能运行的代码。自己的代码虽然简陋,但符合个人习惯;LLM的代码虽然规范,却未必顺手。理想的做法是将两者结合学习,LLM程序中的错误处理和模块设计,同时保留符合习惯的方式。今后我会更加注重代码测试、并批判性地看待任何现成的解决方案。

参考资料

  • [《Pyhthon程序设计)》]
posted @ 2026-04-12 15:31  秉烛27  阅读(12)  评论(0)    收藏  举报