正文:
一、问题背景及核心功能
在线计算器的核心功能是支持基本运算(加减乘除)并记录计算历史。实现该功能需要以下关键能力:
1. 运算逻辑处理:实现加减乘除运算,并处理除零错误
2. 历史记录存储:将计算过程记录到列表中
3. 异常处理机制:防止除零错误和无效操作符
4. 可运行性验证:采用Python实现,不需要依赖外部框架
二、算法思路分析
- 输入处理逻辑
- 输入格式化为三个数字与运算符号
- 遇到”exit”或num1/num2为exit时终止计算
- 使用map函数将输入转换为字符串形式
- 运算逻辑实现
- 使用if-else结构分别处理加减乘除
- 检查除零错误(除以零时使用try-except块)
- 将运算结果与历史记录保存
- 数据结构管理
- 使用列表存储历史记录
- 每次运算后打印结果和历史记录
- 异常处理优化
- 采用try-except块处理除零错误
- 对无效操作符进行错误提示
三、代码实现
import time
def calculator():
history = []
while True:
try:
num1, num2, op = map(str, input("Enter operation: ").split())
if num1 == 'exit' or num2 == 'exit':
break
history.append(f"{num1} {num2} {op}")
op = op[0] # 保留运算符
if op == '+':
result = int(num1) + int(num2)
elif op == '-':
result = int(num1) - int(num2)
elif op == '*':
result = int(num1) * int(num2)
elif op == '/':
if num2 == '0':
raise ZeroDivisionError
result = int(num1) / int(num2)
else:
raise ValueError("Invalid operation: %s" % op)
print(f"Result: {result}")
print(f"History: {history}")
time.sleep(1) # 防止超时
except ZeroDivisionError:
print("Error: Division by zero.")
except ValueError:
print("Error: Invalid operation.")
except Exception as e:
print(f"Error: {e}")
calculator()
四、总结与价值
本代码实现展示了:
– 数据结构的运用:通过列表存储历史记录
– 算法实现:通过if-else结构处理运算逻辑
– 异常处理机制:覆盖除零错误和无效操作符
– 可运行性验证:采用Python实现,无需依赖外部框架
该实现可以在3天内完成编写并验证,具有良好的学习价值。代码简洁易懂,能够满足在线计算器的基本功能要求。