Python正则表达式实现简单四则运算解析器

该博客旨在通过Python的正则表达式实现一个简单的四则运算解析器,重点在于处理加减乘除的优先级及正确性,同时提供测试以确保结果准确,是正则表达式实践的好例子。
摘要由CSDN通过智能技术生成

实现目标:
1. 正确处理加减乘除及括号优先级
2. 保证结果无误,可用eval() 测试
3.练习正则表达式使用

#coding utf-8
"""
                    用正则表达式实现四则运算表达式解析器
思路:
根据计算优先级,先计算内部括号里面的运算,并用计算结果的字符串形式替换原表达式,直到没有括号运算符;
然后匹配乘法和除法的运算因子,按从左往右的顺序依次更新计算结果,最后处理加减法运算。
Tips: 需要特别注意对输入的检测和修正(如多余空格、非法输入)和浮点数的匹配
"""
import re
import functools

def checkInput(formula):
    """检测输入合法与否,是否包含字母等非法字符"""
    return not re.search("[^0-9+\-*/.()\s]",formula)

def formatInput(formula):
    """标准化输入表达式,去除多余空格等"""
    formula = formula.replace(' ',''<
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值