20253431 2025-2026-2 《Python程序设计》实验2报告

20253431 2025-2026-2 《Python程序设计》实验2报告

课程:《Python程序设计》
班级: 2534
姓名: 吕俊孜
学号:20253431
实验教师:王志强
实验日期:2026年4月13日
必修/选修: 公选课

1.实验内容

(1)编写计算器程序

设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。

考核基本语法、判定语句、循环语句、逻辑运算等知识点。

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

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

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

2. 实验过程及结果

自己写的代码(仿照老师写的嘻嘻):

import math
def sum(a,b):
    return a+b
def sub(a,b):
    return a-b
def mul(a,b):
    return a*b
def div(a,b):
    return a/b
def divv(a,b):
    return a//b
def power(a,b):
    return a**b
def mod(a,b):
    return a%b
def log(a,b):
    return math.log(a,b)
while True:
    print('不简单不刺激计算器vX.XX')
    print('='*50)
    a = complex(input("请输入一个数\n"))
    b = complex(input("请输入另一个数\n"))
    operator = input('选择运算符号:+、-、*、/,%,//,log,pow\n')
    while True:
        if operator not in ['+','-','*','/','%','//','log','pow'] :
            print('输入有误,请重新输入')
            operator = input('选择运算符号:+、-、*、/,%,//,log,pow\n')
        else:
            break
    if operator == '+':
        print(f'{a} {operator} {b} = {sum(a,b)}')
    elif operator == '-':
        print(f'{a} {operator} {b} = {sub(a,b)}')
    elif operator == '*':
        print(f'{a} {operator} {b} = {mul(a,b)}')
    elif operator == '/':
        if b == 0:
            print('除数不能等于0!')
        else:
            print(f'{a} {operator} {b} = {div(a,b)}')
    elif operator == '%':
        if b == 0:
            print('除数不能等于0!')
        else :
            print(f'{a} {operator} {b} = {mod(a,b)}')
    elif operator == '//':
        if b == 0:
            print('除数不能等于0!')
        else :
            print(f'{a} {operator} {b} = {divv(a,b)}')
    elif operator == 'log':
        print(f'{a} {operator} {b} = {log(a,b)}')
    elif operator == 'pow':
        print(f'{a} {operator} {b} = {power(a,b)}')
    print('是否继续(Y/N):')
    choice = input()
    if choice.lower() == 'y':
        continue
    else:
        break

看起来非常简单……然后学老师一样用了比较有趣的提示词逗逗DS(豆包烧了)……

然后……

ai生成的代码运行截图

呃总之效果是这样……详细代码请见下面的链接(太长了有五百多行我就不直接放在下面了):

AI代码……

根本看不懂(晕……)我以后也会变成这样的大手子吗

不过ai的代码确实要健壮很多,也确实实用性和交互性要高得多,包括大概看注释看到了有报错的,安全性的……有很多自己都没考虑到的东西

ai的代码总体还是考虑更全面,安全性这方面感觉自己敲代码还是很少有考虑,比如说老师教的eval,ai说好像比较危险……

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

  • 问题1:ai写的代码根本看不懂

  • 问题1解决方案:呜呜呜我再也不乱写提示词了

  • 问题2:eval被说是比较危险

  • 问题二解决方案:最后还是用了complex

其他(感悟、思考等)

计算器很简单,但是要从命令符到可视化交互却很难,感觉离能做出像市面上那种软件还有很长一条路要走,加油!

参考资料

posted @ 2026-04-13 21:04  第十一世的狐  阅读(2)  评论(0)    收藏  举报