20253302 实验二《Python程序设计》实验报告
20253302 2025-2026-2 《Python程序设计》实验二报告
课程:《Python程序设计》
班级: 2533
姓名: 王紫晗
学号:20253302
实验教师:王志强
实验日期:2026年4月13日
必修/选修: 公选课
1.实验内容
此处填写实验的具体内容;
(1)编写计算器程序
设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。
考核基本语法、判定语句、循环语句、逻辑运算等知识点。
(2)用LLM生成一个计算器程序
介绍相关功能,并分析生成的程序代码含义。
对比分析自写程序与生成程序的区别(好与坏)。
2. 实验过程及结果
此处填写实验的过程及结果
详细代码
import math
print(""""
==========这是王紫晗的计算机设计程序==========
==========开发日期:2026年4月13日==========
==========版权所有:Besti Club小分队==========""")
def sum_num(num1, num2):
return num1 + num2
def jian(num1, num2):
return num1 - num2
def multi(num1, num2):
return num1 * num2
def division(num1, num2):
return num1 / num2
def mod(num1, num2):
return num1 % num2
def sqrt(num1):
return math.sqrt(num1)
def sin(num1):
return math.sin(num1)
def myand(num1, num2):
return num1&num2
def log (num1, num2):
return math.log(num1, num2)
def shang(num1, num2):
return num1//num2
while True:
print("请选择你的要求")
choice=input("如果您想进行计算请按“1”\n如果您想退出请按“2”\n如果您想让你的计算器鼓励鼓励你,让你今天都开心请按“3\n")
if choice=="1":
print("你想算什么?加减?乘除?还是取余?")
print("加法请按“+”,减法请按“-”,乘法请按“*”,除法请按“/”,取余请按“%”,开根号请按“根”,正弦函数请按“sin”,按位与请按“&”,求对数请按“log”,求商请按“//”")
choice_2=input()
while True:
if choice_2 not in ["+","-","*","/","%","根","sin","&","log","//"]:
print("输入错误,我这里只能算这些运算,请重新选择")
choice_2 = input("加法请按“+”,减法请按“-”,乘法请按“*”,除法请按“/”,取余请按“%”,开根号请按“根”,正弦函数请按“sin”,按位与请按“&”,求对数请按“log”,求商请按“//”\n")
else :
break
print("请输入两个数字")
a = eval(input())
b = eval(input())
if choice_2=="+" :
print(f"{a}{choice_2}{b}={sum_num(a, b)}")
elif choice_2=="-" :
print(f"{a}{choice_2}{b}={jian(a, b)}")
elif choice_2=="*" :
print(f"{a}{choice_2}{b}={multi(a, b)}")
elif choice_2=="/" :
print(f"{a}{choice_2}{b}={division(a, b)}")
elif choice_2=="%" :
print(f"{a}{choice_2}{b}={mod(a, b)}")
elif choice_2=="sin" :
print(f"{choice_2}{a}={sin(a)}")
print(f"{choice_2}{b}={sin(b)}")
elif choice_2=="&" :
print(f"{a}{choice_2}{b}={myand(a, b)}")
elif choice_2=="log" :
print(f"{a}{choice_2}{b}={log(a, b)}")
elif choice_2=="//" :
print(f"{a}{choice_2}{b}={shang(a, b)}")
elif choice=="2":
break
elif choice=="3":
print("星光不负赶路人,时光不负有心人,愿你高考顺利,前程似锦\n")
else :
print("你看清楚再输入,输不对你还算什么(")
1.自己编写程序确定主循环体,使用while True进行循环,实现可以无限运算,同时如果输入不符合要求进行自动排除并重新输入

2.编写自定义def函数,分别去实现加减乘除,模,整除,sin三角函数,按位与,log对数运算

3.编写计算器函数体内不同运算符内容,进行如果输入不符合格式进行自动排除并重新输入

4.调试

5.运行

6.大模型生成,同时使用离谱prompt

7.运行

8.功能介绍
进行了基本的算术运算,比如加减乘除和求余(即取模),同时还有高级的科学运算,比如求平方根,对数,三角函数,阶乘,同时可以键盘输入或者点击输入。
9.代码含义
引入tkinter,塑造出一个图形化界面

同时进行界面的美化工作

对输入是否合法进行判断

使用自定义def函数进行运算

10.人与AI的代码对比
- AI的代码功能更全面,涵盖了从初等到高等数学的常见运算;我的代码缺少幂、阶乘等功能。
- AI的代码并不是使用命令行,更接近真实计算器。
- AI对错误的处理更加的完善,我只判断输入是否符合要对应的条件
11.托管到gitee上
先提交

再推送到gitee上
- 王紫晗的手写实验二代码和AI生成的实验二代码
![屏幕截图 2026-04-13 204744]()
12.代码上华为云服务器!!!
![image]()
![image]()
3. 实验过程中遇到的问题和解决过程
- 问题1:在判断是否进入计算机程序时发现无法进入,直接跳出并进入死循环

-
问题1解决方案:调试时发现是输入的数字自动设置为str字符串,未进行强制类型转换,所以将原来的对1做判断改为对字符串“1”进行对比
-
问题2:函数重载出问题
![求与时发现不能命名为and]()
-
问题2解决方案:发现原来and是python中的一个关键字,不能命名为and,更改为myand
![求与时发现不能命名为and]()
-
问题3:直接输出函数名称,而不是运算结果
![未将函数用{}闭合]()
-
问题3解决方案:发现是在print内未闭合括号导致的结果
-
问题4:使用log函数对a和b进行对数运算,出现报错
![image]()
-
问题4:发现使用log函数需要导入math库
![image]()
其他(感悟、思考等)
感悟:
这次实验我写的代码拼音代替英语、函数里有递归错误(。但是,到最后能做出图形界面、甚至放到云服务器上通过浏览器访问。每一个卡住的地方(pip 报错、找不到文件、不知道怎么进入目录)都是通过询问AI来让我找到了实际解决问题的方法。以后再遇到类似的环境配置、路径问题,我知道怎么查怎么做了。AI确实很强大,但是那是用来解决问题时,学习的过程需要一个扎实的基础,要从头开始,可以向AI学习,但是不能直接托管给它。








浙公网安备 33010602011771号