20253320蒋丰任《Python程序设计》实验2报告

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

课程:《Python程序设计》
班级: 2533
姓名: 蒋丰任
学号:20253320
实验教师:王志强
实验日期:2026年4月13日
必修/选修: 公选课

1.实验内容

此处填写实验的具体内容;
(1)编写计算器程序

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

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

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

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

2. 实验过程及结果

(1)我的程序:

def add(x, y):
    return x + y

def sub(x, y):
    return x - y

def mul(x, y):
    return x * y

def div(x, y):
    if y == 0:
        return "错误:除数不能为0"
    return x / y

def mod(x, y):
    return x % y

def square(x):
    return x ** 2

def sqrt(x):
    if x < 0:
        return "错误:负数不能开平方"
    return x ** 0.5

def show_menu():
    print("请选择你的云树")
    print("1. 加法运算")
    print("2. 减法运算")
    print("3. 乘法运算")
    print("4. 除法运算")
    print("5. 取模运算")
    print("6. 平方运算")
    print("7. 开方运算")
    print("0. 退出计算器")

def main():
    while True:
        show_menu()
        choice = input("请选择功能序号:")

        if choice == "0":
            print("感谢使用,再见!")
            break

        elif choice == "1":
            x = float(input("请输入第一个数:"))
            y = float(input("请输入第二个数:"))
            print(f"结果:{x} + {y} = {add(x, y)}")

        elif choice == "2":
            x = float(input("请输入第一个数:"))
            y = float(input("请输入第二个数:"))
            print(f"结果:{x} - {y} = {sub(x, y)}")

        elif choice == "3":
            x = float(input("请输入第一个数:"))
            y = float(input("请输入第二个数:"))
            print(f"结果:{x} × {y} = {mul(x, y)}")

        elif choice == "4":
            x = float(input("请输入第一个数:"))
            y = float(input("请输入第二个数:"))
            print(f"结果:{div(x, y)}")

        elif choice == "5":
            x = float(input("请输入第一个数:"))
            y = float(input("请输入第二个数:"))
            print(f"结果:{x} % {y} = {mod(x, y)}")

        elif choice == "6":
            x = float(input("请输入数字:"))
            print(f"结果:{x} ² = {square(x)}")

        elif choice == "7":
            x = float(input("请输入数字:"))
            print(f"结果:{sqrt(x)}")

        else:
            print("输入错误!请输入有效序号!")

if __name__ == "__main__":
    main()

(2)我的运行截图
6de77a4fc68c752c1cb1dc41e033fa9e

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

def simple_calculator():
    """简单的加减乘除计算器"""
    
    print("简单计算器")
    print("支持运算: +  -  *  /")
    print("输入 'quit' 退出")
    print("-" * 30)
    
    while True:
        # 获取第一个数字
        num1_input = input("输入第一个数字: ")
        if num1_input.lower() == 'quit':
            print("再见!")
            break
        
        # 获取运算符
        operator = input("输入运算符 (+, -, *, /): ")
        if operator.lower() == 'quit':
            print("再见!")
            break
        
        # 获取第二个数字
        num2_input = input("输入第二个数字: ")
        if num2_input.lower() == 'quit':
            print("再见!")
            break
        
        try:
            # 转换为数字
            num1 = float(num1_input)
            num2 = float(num2_input)
            
            # 执行计算
            if operator == '+':
                result = num1 + num2
                print(f"{num1} + {num2} = {result}")
            elif operator == '-':
                result = num1 - num2
                print(f"{num1} - {num2} = {result}")
            elif operator == '*':
                result = num1 * num2
                print(f"{num1} × {num2} = {result}")
            elif operator == '/':
                if num2 == 0:
                    print("错误:除数不能为零!")
                else:
                    result = num1 / num2
                    print(f"{num1} ÷ {num2} = {result}")
            else:
                print("错误:无效的运算符!")
                
        except ValueError:
            print("错误:请输入有效的数字!")
        
        print("-" * 30)

# 运行计算器
if __name__ == "__main__":
    simple_calculator()

image
(4)保存到gitee
image

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

  • 问题1:除数为 0 时程序直接报错崩溃,无法正常运行
  • 问题1解决方案:在除法函数div(x, y)中增加条件判断if y == 0,若除数为 0 则直接返回友好的错误提示,不执行除法运算,避免程序崩溃,同时提升用户体验。
  • 问题2:输入负数进行开平方运算时,程序输出无意义的复数结果
  • 问题2解决方案:在开方函数sqrt(x)中增加逻辑判断if x < 0,若输入为负数则返回错误提示,明确告知用户负数不能开平方,保证运算的数学合理性。

其他(感悟、思考等)

通过本次 Python 计算器设计实验,我对 Python 的基础语法、函数设计、分支循环、逻辑运算等知识点有了更深刻的理解和实践。在开发过程中,我深刻体会到模块化编程的重要性:将不同功能拆分为独立函数,不仅让代码结构更清晰,也大大提升了调试和维护的效率。同时,我也意识到程序健壮性的重要性,除了实现核心功能,还需要充分考虑各种异常输入和边界情况,比如除数为 0、负数开方、非法输入等,才能让程序更稳定、用户体验更好。
对比自写程序和 LLM 生成的程序,我也发现了 AI 生成代码的优缺点:AI 可以快速生成基础功能,但往往缺乏结构设计、异常处理和用户体验优化,而手动编写代码可以更贴合课程要求,针对性地覆盖考核知识点,同时培养自己的编程思维和问题解决能力。本次实验不仅巩固了 Python 的基础语法,也让我养成了规范编程、提前考虑异常的好习惯,为后续更复杂的 Python 项目开发打下了坚实的基础。

参考资料

posted @ 2026-04-13 21:56  蒋丰任  阅读(5)  评论(0)    收藏  举报