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

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

(3)功能介绍:
手敲代码支持加减乘除模运算和基本错误处理,输入关键词结束程序;
LLM代码可随时输入'exit'退出,以及更复杂的错误处理办法和更多样的提示词;
(4)对比
LLM代码看起来很高级,但是好像没有增加多少新功能,在不要求的情况下同样只满足基本计算需求。
3. 实验过程中遇到的问题和解决过程
- 问题1:用LLM生成的代码因为没有提供提示词,生成的程序太简陋了
- 问题1解决方案:通过观察其他人的程序了解到计算器还可以有三角函数、幂等功能,并据此修改提示词,再次生成新程序。
- 问题2:代码基础语法有点遗忘
- 问题2解决方案:咨询AI,加深记忆。
其他(感悟、思考等)
大模型生成的代码相对来说更加全面更加丰富,可以用作查漏补缺;
要善于运用AI的同时多记忆知识点。
浙公网安备 33010602011771号