# 简易数字加减法计算器开发技术博客


背景介绍

在日常生活和编程学习中,数字加减法是一个基础且重要的操作。开发一个支持输入数字和操作类型、输出结果并记录错误信息的简易计算器,不仅能提升代码的可读性,还能帮助开发者在实际项目中进行调试和记录问题。该项目仅需本地环境运行,无需依赖外部服务或框架,适合学习编程基础。

思路分析

  1. 核心功能需求
    • 支持输入两个数字和一个操作符(加减乘除)
    • 输出最终结果并记录错误信息
    • 本地运行无依赖
  2. 数据处理逻辑
    • 使用文件读写保存计算记录,便于后续调试
    • 利用常见数据结构(如列表或字典)记录计算过程
    • 包含错误信息处理机制
  3. 算法应用
    • 实现数字加减运算的数学计算
    • 检查输入格式是否合法
    • 记录运算过程中可能出现的错误信息

代码实现

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天的项目时间内,能够完成从输入处理到结果输出的完整流程,是一个适合初学者的编程实践项目。