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

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

课程:《Python程序设计》
班级: 2432
姓名: 杨婕
学号:20243222
实验教师:王志强
实验日期:2026年4月13日
必修/选修: 公选课

1.实验内容

(一)实验内容
(1)编写计算器程序
设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。
考核基本语法、判定语句、循环语句、逻辑运算等知识点。
(2)用LLM生成一个计算器程序
介绍相关功能,并分析生成的程序代码含义。
对比分析自写程序与生成程序的区别(好与坏)。

2. 实验过程及结果

(1)编写计算器
在课上,我首先跟着老师编写了计算器的大概框架,接着自己修改了一些细节,并增加了给一个数字开方的功能,所有计算的功能均是用自定义函数实现,并运用了math函数来计算对数、开方、次方,输出使用格式化字符。
因此,本计算器可实现的功能有加减乘除、取余、求对数、求次方、开方,若要完成加减乘除、取余、求对数、求次方,则需输入两个数字;若需完成开方,可只输入一个数字。并且通过使用eval格式,输入的数字可以是整数、小数、复数。
一次计算完成后,用户可选择是否继续使用计算器,该功能通过循环实现。
代码运行结果如下:
加法:image

减法:image

乘法:image

除法:image

取余:image

求对数:image

求次方:image

开方:image

(2)用LLM生成一个计算器程序
以下为豆包生成的代码运行的截图。
image
image

功能介绍:
基础运算:加 +、减 -、乘 *、除 /、平方、开方、圆周率、三角函数、连续计算、退出
代码含义分析:首先导入math库用于支持开方、三角函数、圆周率等科学计算,随后定义calculator函数,先打印功能说明与使用示例,再通过while True实现循环计算,程序会持续接收用户输入的数学表达式,若输入q则退出,接着通过replace方法将用户输入的符号替换为 Python 可识别的math库函数与运算语法,利用eval函数执行表达式计算并输出结果,同时搭配try-except捕获输入错误,避免程序崩溃。

优缺点对比:
1.LLM生成代码
优点:可直接输入数学式子,支持复杂混合运算,不用分步,扩展新功能非常容易,有清晰说明、示例,输入错误不崩溃
缺点:错误提示不够友好、所有异常只输出 “输入错误”,不知道是语法错、除零错还是格式错
2.自写代码
优点:逻辑简单,每个运算一个函数和if-elif匹配、输入流程可控,先选符号再输入数字、不会出现表达式语法错误
缺点:不能直接输入 1+2*3,必须分步算,比较麻烦,不支持混合运算,代码重复多、每个运算符都要写重复逻辑,加一个新功能要改很多地方

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

  • 问题1:对格式化字符不够熟悉,容易少打括号
  • 问题1解决方案:熟能生巧,先理解格式化字符,自己再多打了几行代码之后既充分了解了格式化字符的定义,也进一步学会了如何使用它。
  • 问题2:部分计算功能不能完全实现,如在写开方的功能时,因为开方一次只能计算一个数字,所以涉及用户要输入一个数字还是两个数字,开始时逻辑不够清晰,导致代码运行有误
  • 问题2解决方案:思考逻辑之后改变了提示用户输入数字语句的位置,代码即可正常运行

其他(感悟、思考等)

自己动手编写这段计算器代码,让我体会到从零到实现功能的成就感,也掌握了函数定义、格式化字符等基础编程知识。虽然代码较为繁琐,逻辑比较简单,但这是我独立思考完成的成果,也感受到了冗余代码带来的不便。通过和豆包生成的代码对比,我也懂得了好的代码不仅要能实现功能,更要简洁高效、易于完善。

参考资料

posted @ 2026-04-14 14:01  水滴洋葱  阅读(5)  评论(0)    收藏  举报