Python如何提取字符串表达式中的运算符完成列表内算术运算
实现方案
你当前逐字符转列表的处理方式不适合当前场景:所有输入表达式都以空格为固定分隔符,直接按空格切割就能一次性提取出两个运算数和运算符,不需要逐字符遍历识别。
核心逻辑
- 用字符串的
split()方法按空格拆分输入,会直接返回长度为3的列表,三个元素依次是左操作数、运算符、右操作数,哪怕是双字符的//运算符也会被完整提取,不会被拆成单个字符 - 把提取到的两个操作数从字符串转为整数类型
- 用字典建立运算符到对应运算逻辑的映射,避免写多层if-else判断,直接根据提取到的运算符取对应逻辑计算即可
可运行代码
# 读取输入表达式 expr = input("Enter: ") # 按空格拆分表达式 left_operand, operator, right_operand = expr.split() # 转换操作数为整数 a = int(left_operand) b = int(right_operand) # 配置运算规则映射 calculator = { '+': lambda x, y: x + y, '-': lambda x, y: x - y, '*': lambda x, y: x * y, '//': lambda x, y: x // y } # 执行计算并输出 res = calculator[operator](a, b) print(res)
测试效果
- 输入
12 + 24,输出36 - 输入
23 - 21,输出2 - 输入
12 // 12,输出1 - 输入
12 * 21,输出252
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

