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

课程:《Python程序设计》
班级: 2532
姓名: 吴江浩
学号: 20253202
实验教师:王志强
实验日期:2026年4月13日
必修/选修: 公选课

1.实验内容

(一)实验内容

(1)编写计算器程序

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

考核基本语法、判定语句、循环语句、逻辑运算等知识点。
(2)用LLM生成一个计算器程序

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

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

2. 实验过程及结果

(1)人工代码

点击查看代码
def calc():
    print('计算器')
    print('操作: +, -, *, /, %')
    while true:
        s = input('输入表达式 (如 1+2) 或 q 退出: ')
        if s == 'q':
            break
        try:
            a = ''
            op = ''
            b = ''
            for c in s:
                if c in '+-*/%':
                    op = c
                elif op == '':
                    a += c
                else:
                    b += c
            a = float(a)
            b = float(b)
            if op == '+':
                r = a + b
            elif op == '-':
                r = a - b
            elif op == '*':
                r = a * b
            elif op == '/':
                if b == 0:
                    print('除数不能为0')
                    continue
                r = a / b
            elif op == '%':
                if b == 0:
                    print('除数不能为0')
                    continue
                r = a % b
            else:
                print('操作符错误')
                continue
            print('结果:', r)
        except:
            print('输入错误')
    print('退出')

if __name__ == '__main__':
    calc()

屏幕截图 2026-04-13 210812

(2)LLM生成

点击查看代码
"""
计算器程序
支持基本的算术运算和错误处理
"""

def llm_calculator():
    """主计算器函数"""
    print("=== LLM生成的计算器 ===")
    print("支持的操作:")
    print("  + (加法)")
    print("  - (减法)")
    print("  * (乘法)")
    print("  / (除法)")
    print("  % (取模)")
    print("输入 'exit' 退出程序")
    
    while True:
        # 获取用户输入
        user_input = input("\n请输入计算表达式 (例如: 3.5+2): ").strip()
        
        # 处理退出命令
        if user_input.lower() == 'exit':
            print("感谢使用计算器!")
            break
        
        try:
            # 解析输入表达式
            tokens = []
            current_number = ""
            
            # 逐字符解析表达式
            for char in user_input:
                if char in '+-*/%':
                    # 遇到操作符,保存当前数字
                    if current_number:
                        tokens.append(float(current_number))
                        current_number = ""
                    tokens.append(char)
                elif char.isdigit() or char == '.':
                    # 收集数字字符
                    current_number += char
                else:
                    # 非法字符
                    raise ValueError("包含非法字符")
            
            # 处理最后一个数字
            if current_number:
                tokens.append(float(current_number))
            
            # 验证表达式格式
            if len(tokens) != 3:
                print("错误:表达式格式不正确")
                print("请输入形如 '数字 操作符 数字' 的表达式")
                continue
            
            # 提取操作数和操作符
            num1, operator, num2 = tokens
            
            # 执行计算
            result = None
            if operator == '+':
                result = num1 + num2
            elif operator == '-':
                result = num1 - num2
            elif operator == '*':
                result = num1 * num2
            elif operator == '/':
                if num2 == 0:
                    print("错误:除数不能为零")
                    continue
                result = num1 / num2
            elif operator == '%':
                if num2 == 0:
                    print("错误:除数不能为零")
                    continue
                result = num1 % num2
            else:
                print(f"错误:不支持的操作符 '{operator}'")
                continue
            
            # 显示计算结果
            print(f"计算结果: {num1} {operator} {num2} = {result}")
            
        except ValueError as e:
            print(f"输入错误: {e}")
        except Exception as e:
            print(f"发生未知错误: {e}")
			if __name__ == "__main__":
    llm_calculator()

屏幕截图 2026-04-13 210740

仓库地址

(3)功能介绍:
手敲代码支持加减乘除模运算和基本错误处理,输入关键词结束程序;
LLM代码可随时输入'exit'退出,以及更复杂的错误处理办法和更多样的提示词;

(4)对比
LLM代码看起来很高级,但是好像没有增加多少新功能,在不要求的情况下同样只满足基本计算需求。

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

  • 问题1:用LLM生成的代码因为没有提供提示词,生成的程序太简陋了
  • 问题1解决方案:通过观察其他人的程序了解到计算器还可以有三角函数、幂等功能,并据此修改提示词,再次生成新程序。
  • 问题2:代码基础语法有点遗忘
  • 问题2解决方案:咨询AI,加深记忆。

其他(感悟、思考等)

大模型生成的代码相对来说更加全面更加丰富,可以用作查漏补缺;
要善于运用AI的同时多记忆知识点。

参考资料

posted @ 2026-04-13 21:12  YUXI8640  阅读(5)  评论(0)    收藏  举报