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进行循环,实现可以无限运算,同时如果输入不符合要求进行自动排除并重新输入
image
2.编写自定义def函数,分别去实现加减乘除,模,整除,sin三角函数,按位与,log对数运算
image
3.编写计算器函数体内不同运算符内容,进行如果输入不符合格式进行自动排除并重新输入
image
4.调试
image
5.运行
image
6.大模型生成,同时使用离谱prompt
image
7.运行
image
8.功能介绍
进行了基本的算术运算,比如加减乘除和求余(即取模),同时还有高级的科学运算,比如求平方根,对数,三角函数,阶乘,同时可以键盘输入或者点击输入。
9.代码含义
引入tkinter,塑造出一个图形化界面
image
同时进行界面的美化工作
image
对输入是否合法进行判断
image
使用自定义def函数进行运算
image
10.人与AI的代码对比

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

11.托管到gitee上
先提交
屏幕截图 2026-04-13 204753
再推送到gitee上

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学习,但是不能直接托管给它。

参考资料

posted @ 2026-04-13 22:54  马思钊  阅读(26)  评论(0)    收藏  举报