From c16bb24021755b667f03bb34bb19ce12c22e4a28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=A0=E7=9A=84=E5=90=8D=E5=AD=97?= <你的邮箱@xxx.com> Date: Sat, 21 Mar 2026 15:16:37 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=20calculator.py=20?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=99=A8=E7=A8=8B=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- calculator.py | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 calculator.py diff --git a/calculator.py b/calculator.py new file mode 100644 index 0000000..28dcb6b --- /dev/null +++ b/calculator.py @@ -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() \ No newline at end of file