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)我的运行截图

(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()

(4)保存到gitee

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 项目开发打下了坚实的基础。

浙公网安备 33010602011771号