20252428实验二《Python程序设计》实验报告
20252428 2025-2026-2 《Python程序设计》实验2报告
- 课程:《Python程序设计》
- 班级:2528
- 姓名:代林淞
- 学号:20252428
- 实验教师:王志强
- 实验日期:2026年4月13日
- 必修/选修:公选课
1. 实验内容
(1) 编写计算器程序
设计并完成两个计算器程序:
- 简易命令行计算器(
calculator_cli.py)- 完成加减乘除模等基本运算 - 完整科学计算器(
calculator.py)- 提供图形界面,支持高级数学函数运算
考核基本语法、判定语句、循环语句、逻辑运算等知识点。
(2) 用LLM生成计算器程序
介绍相关功能,并分析生成的程序代码含义。
对比分析自写程序与生成程序的区别(好与坏)。
2. 实验过程及结果
(1) 自主编写的命令行计算器程序(calculator_cli.py)
a = float(input("请输入第一个数: "))
op = input("请输入运算符(+ - * / %): ")
b = float(input("请输入第二个数: "))
if op == "+":
print("结果:", a + b)
elif op == "-":
print("结果:", a - b)
elif op == "*":
print("结果:", a * b)
elif op == "/":
if b == 0:
print("错误:不能除以零")
else:
print("结果:", a / b)
elif op == "%":
if b == 0:
print("错误:不能取模零")
else:
print("结果:", a % b)
else:
print("无效运算符")
代码说明:
- 第4行:获取第一个操作数,使用
float()转换为浮点数 - 第5行:获取运算符
- 第6行:获取第二个操作数
- 第9-24行:根据运算符使用
if-elif语句进行相应计算 - 第16行、第21行:用
if语句判定除数或模数是否为0,避免除零错误
运行结果:
注:图片链接已失效,请在实际报告中替换为实际截图
(2) 科学计算器程序(calculator.py)核心代码分析
该程序包含以下主要模块:
① BasicOperations类 - 基础运算
class BasicOperations:
@staticmethod
def add(a, b): return a + b
@staticmethod
def subtract(a, b): return a - b
@staticmethod
def multiply(a, b): return a * b
@staticmethod
def divide(a, b):
if b == 0:
raise ValueError("Cannot divide by zero")
return a / b
@staticmethod
def modulo(a, b):
if b == 0:
raise ValueError("Cannot compute modulo with zero")
return a % b
@staticmethod
def integer_divide(a, b): return a // b
@staticmethod
def power(a, b): return math.pow(a, b)
② ScientificOperations类 - 科学运算
- 三角函数:
sin,cos,tan,asin,acos,atan(支持角度/弧度切换) - 双曲函数:
sinh,cosh,tanh - 对数函数:
log,log10,ln - 其他:
sqrt,nth_root,factorial,abs,exp
③ Converter类 - 进制转换
to_binary:十进制转二进制to_octal:十进制转八进制to_hex:十进制转十六进制
④ Tokenizer和Parser类 - 表达式解析
- 将输入的数学表达式解析为token序列
- 支持运算符优先级和括号
⑤ CalculatorApp类 - GUI界面
使用tkinter创建完整的图形界面,包含:
- 数字按钮 0-9
- 运算符按钮 + - * / %
- 科学函数按钮 sin cos tan log sqrt 等
- 存储器按钮 MC MR M+ M-
- 历史记录面板
- 键盘快捷键支持
运行结果(通过Python测试验证):
注:图片链接已失效,请在实际报告中替换为实际截图
(3) 两个程序的对比分析
| 特性 | calculator_cli.py | calculator.py |
|---|---|---|
| 界面 | 命令行界面 | 图形界面(GUI) |
| 功能 | 5种基本运算 | 20+种运算(含科学计算) |
| 代码量 | 26行 | 833行 |
| 可用性 | 简单,适合学习 | 功能完整,实用性强 |
| 错误处理 | 基本的除零检查 | 完善的异常处理 |
与LLM生成的程序相比:
calculator.py程序更加美观和便利,有独特的图形界面,模拟真实的计算器产品calculator.py程序合理利用面向对象编程,结构清晰calculator_cli.py程序简单易懂,适合初学者学习基本语法
(4) 将代码托管到Gitee上
注:图片链接已失效,请在实际报告中替换为实际截图
3. 实验过程中遇到的问题和解决过程
(本节内容待补充)
4. 其他(感悟、思考等)
通过本次实验,我掌握了以下知识和技能:
- Python基本语法:变量定义、类型转换、
input()和print()输入输出 - 条件判断:
if-elif-else语句的使用 - 算术运算符:
+,-,*,/,%,//,^的使用 - 面向对象编程:类的定义和方法的使用
- 模块导入:
import math - 异常处理:
try-except语句的使用
通过对比两种计算器程序,我认识到:
- 简单的CLI程序适合学习基本语法和逻辑
- 复杂的GUI程序需要更好的代码组织和架构
- LLM可以辅助生成高质量代码,但要理解其原理才能有效使用
参考资料
- Python官方文档:https://docs.python.org/3/
- Tkinter官方文档:https://docs.python.org/3/library/tkinter.html
- 《Python编程:从入门到实践》




浙公网安备 33010602011771号