feat: 新增 calculator.py 计算器程序

This commit is contained in:
你的名字
2026-03-21 15:16:37 +08:00
parent 350b5f6611
commit c16bb24021

106
calculator.py Normal file
View File

@@ -0,0 +1,106 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
十进制四则运算计算器
支持加、减、乘、除基本运算
提供交互式命令行界面
"""
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:
raise ValueError("除数不能为零")
return a / b
def calculate(expression):
"""
解析并计算表达式
表达式格式: 数字1 运算符 数字2例如: 5 + 3
支持运算符: +, -, *, /
"""
try:
# 分割表达式
parts = expression.strip().split()
if len(parts) != 3:
raise ValueError("表达式格式错误,请使用格式: 数字 运算符 数字 (例如: 5 + 3)")
# 解析操作数
try:
num1 = float(parts[0])
num2 = float(parts[2])
except ValueError:
raise ValueError("操作数必须是数字")
# 解析运算符并执行计算
operator = parts[1]
if operator == '+':
result = add(num1, num2)
elif operator == '-':
result = subtract(num1, num2)
elif operator == '*':
result = multiply(num1, num2)
elif operator == '/':
result = divide(num1, num2)
else:
raise ValueError(f"不支持的运算符: {operator},请使用 +, -, *, /")
return result
except ValueError as e:
raise e
except Exception as e:
raise RuntimeError(f"计算错误: {e}")
def main():
"""主函数,交互式计算器"""
print("=" * 50)
print("十进制四则运算计算器")
print("=" * 50)
print("使用说明:")
print(" 1. 输入表达式,格式: 数字 运算符 数字")
print(" 2. 支持的运算符: + (加), - (减), * (乘), / (除)")
print(" 3. 示例: 5 + 3, 10.5 * 2, 8 / 4")
print(" 4. 输入 'exit''quit' 退出程序")
print("=" * 50)
while True:
try:
# 获取用户输入
user_input = input("\n请输入表达式: ").strip()
# 检查退出命令
if user_input.lower() in ['exit', 'quit', 'q']:
print("\n感谢使用计算器,再见!")
break
# 跳过空输入
if not user_input:
continue
# 计算并显示结果
result = calculate(user_input)
print(f"结果: {result}")
except ValueError as e:
print(f"输入错误: {e}")
except RuntimeError as e:
print(f"计算错误: {e}")
except KeyboardInterrupt:
print("\n\n检测到中断信号,退出程序...")
break
except Exception as e:
print(f"未知错误: {e}")
if __name__ == "__main__":
main()