背景介绍
在日常生活和编程学习中,数字加减法是一个基础且重要的操作。开发一个支持输入数字和操作类型、输出结果并记录错误信息的简易计算器,不仅能提升代码的可读性,还能帮助开发者在实际项目中进行调试和记录问题。该项目仅需本地环境运行,无需依赖外部服务或框架,适合学习编程基础。
思路分析
- 核心功能需求
- 支持输入两个数字和一个操作符(加减乘除)
- 输出最终结果并记录错误信息
- 本地运行无依赖
- 数据处理逻辑
- 使用文件读写保存计算记录,便于后续调试
- 利用常见数据结构(如列表或字典)记录计算过程
- 包含错误信息处理机制
- 算法应用
- 实现数字加减运算的数学计算
- 检查输入格式是否合法
- 记录运算过程中可能出现的错误信息
代码实现
import sys
def calculate_and_record(num1, op, num2, error_message):
step_num = len(calculation_log)
calculation_log.append(f"{num1} {op} {num2} -> {result}")
# 检查操作符是否合法
if op not in "+-*/":
print(f"Invalid operation: {op} (must be +, -, *, /)")
return error_message
# 计算结果并记录
result = evaluate(num1, num2, op)
calculation_log.append(f"Result: {result}")
# 保存计算记录
with open("calculation.log", "w") as log_file:
log_file.write(f"Step {step_num}: {num1} {op} {num2} -> {result}")
def evaluate(num1, num2, op):
if op == "+":
return num1 + num2
elif op == "-":
return num1 - num2
elif op == "*":
return num1 * num2
elif op == "/":
if num2 == 0:
raise ZeroDivisionError("Division by zero")
return num1 / num2
def main():
calculation_log = []
print("Enter two numbers and an operation (+, -, *, /):")
num1 = float(input("First number: "))
num2 = float(input("Second number: "))
op = input("Operation: ")
try:
result = calculate_and_record(num1, op, num2, "No error")
print("Result:", result)
except ZeroDivisionError as e:
print("Error:", e)
except Exception as e:
print(f"Error occurred: {e}")
if __name__ == "__main__":
main()
总结
该项目通过文件读写记录计算过程,实现了数字加减运算的基本功能,并支持错误信息的记录。代码简洁易读,适合本地开发环境运行,具备良好的调试和学习价值。该项目的实现过程涵盖了文件处理、数据结构应用以及错误信息记录等多个方面,展现了编程基础的核心技能。在1~3天的项目时间内,能够完成从输入处理到结果输出的完整流程,是一个适合初学者的编程实践项目。