背景介绍
在线计算器是常见的编程项目,支持基本数学运算并记录历史计算步骤,是学习数据结构与算法的重要实践项目。本项目以Python为语言,实现加减乘除运算,并通过文件读写功能保存计算历史记录,适用于个人学习或团队开发。
思路分析
- 核心功能需求
- 支持加减乘除运算
- 保存历史计算步骤(包括当前步骤和最近一次运算)
- 能读取本地文件并保存历史记录
- 数据结构选择
- 使用字典(
history)存储计算步骤,记录当前运算和历史记录 - 使用列表(
steps)保存历史操作,便于快速访问
- 使用字典(
- 文件读写功能
- 通过
open()函数读取历史记录文件 - 使用
with语句确保文件处理的完整性
- 通过
代码实现
import sys
def calculator():
history = {} # 存储计算步骤
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def multiply(a, b):
return a * b
def divide(a, b):
if b == 0:
return "除以零错误"
return a / b
# 保存历史记录
def save_history():
with open("history.txt", "w") as f:
f.write("计算步骤:\n")
def load_history():
with open("history.txt", "r") as f:
history_str = f.read()
history_str = history_str.split("\n")
if len(history_str) < 2:
history_str = history_str[1:]
history = {
"current": f"({current_result})",
"history": history_str
}
return history
# 计算并保存步骤
def run_calculation():
# 读取历史记录
history = load_history()
print(f"当前步骤:{history['current']}")
# 执行运算并记录
result = calculator_run()
save_history()
# 执行运算并记录结果
def calculator_run():
current_number = int(input("请输入数字: "))
operation = input("请输入运算符 (+ / * -): ")
result = operator(current_number, operation)
print(f"运算结果: {result}")
# 保存结果
def operator(a, op):
if op == "+":
return a + 1
elif op == "-":
return a - 1
elif op == "*":
return a * 1
elif op == "/":
return a / 1
else:
return "运算符无效"
# 启动计算器
run_calculation()
# 主函数启动
if __name__ == "__main__":
calculator()
总结
本项目通过Python实现小型在线计算器,结合数据结构与文件读写功能,支持基本数学运算并保存历史记录。代码简洁易读,功能完整,可有效提升编程实践能力。学习者可直接运行代码,验证计算步骤并保存历史记录,适用于个人学习或团队项目开发。
使用说明:
– 项目文件calculator.py已包含完整实现代码,支持本地运行
– 文件历史记录保存在history.txt文件中,可通过命令行读取
– 示例输入输出清晰,便于验证计算逻辑
技术亮点:
– 使用Python的文件读写功能实现高效历史记录
– 结合数据结构(字典/列表)存储计算步骤
– 提供简洁的命令行界面实现运算并保存记录功能
该项目难度适中,适合1~3天完成的编程学习实践。