Python如何实现支持单次输入四则运算表达式的计算器功能
单次输入表达式计算器修改方案
实现思路
你只需要把原来三次分步输入的逻辑改成单次输入后拆分内容即可,核心逻辑如下:
- 单次获取用户输入的完整表达式,按空白符拆分得到「第一个数字、运算符、第二个数字」三个部分
- 复用你原有成熟的运算符判断逻辑完成计算
- 额外增加异常处理,覆盖输入格式错误、非数字输入、除零等常见异常场景,避免程序直接崩溃
修改后完整代码
# 单次获取输入 expr = input("请输入运算表达式(示例:3 * 3):").strip() # 按空白符拆分输入 parts = expr.split() # 先校验输入格式是否符合要求 if len(parts) != 3: print("输入格式错误,请按照「数字 运算符 数字」的格式输入,各部分用空格分隔") else: try: num1 = float(parts[0]) op = parts[1] num2 = float(parts[2]) if op == "+": print(num1 + num2) elif op == "-": print(num1 - num2) elif op == "*": print(num1 * num2) elif op == "/": # 额外判断除数不能为0 if num2 == 0: print("错误:除数不能为0") else: print(num1 / num2) else: print("请输入有效的运算符(支持+、-、*、/)") except ValueError: print("输入错误:数字格式非法,请输入正确的数字")
补充说明
- 上述代码默认要求输入的表达式各部分用空格分隔,和你给出的示例格式完全匹配,就算不小心输入了多个空格也能正常识别
- 如果你希望支持无空格的输入格式(比如
3*3),可以引入正则表达式模块re来提取数字和运算符,示例匹配规则为re.findall(r'(\d+\.?\d*)([+\-*/])(\d+\.?\d*)', expr),你可以在掌握基础写法之后尝试修改
内容的提问来源于stack exchange,提问作者The Vinchi
相关产品推荐
相关产品推荐

