原文:https://blog.csdn.net/qq_40794602/article/details/81738630 import re
express = '(1 -2 *  (60-30+(-40/5)* (9-2*5/3+7 /3+99/4*2998)))'
express = '1+2*3+(3+4)'
#表达式:
def delwith(new_express):new_express = new_express.replace('+-','-')new_express = new_express.replace('--','+')return new_expressdef cal_exp_son(exp_son):#只用来计算原子型的表达式,两个数之间的乘除法if '/' in exp_son:a,b = exp_son.split('/')return str(float(a)/float(b))elif '*' in exp_son:a,b = exp_son.split('*')return str(float(a)*float(b))def cal_express_no_bracket(exp):#计算里面没有括号的表达式#exp是没有经过处理的最内层的带括号的表达式exp = exp.strip('()')# print(exp)#先乘除后加减while True:ret = re.search('\d+\.?\d*[*/]-?\d+\.?\d*',exp)if ret:exp_son = ret.group()# print(exp_son)ret = cal_exp_son(exp_son)# print(ret)exp = exp.replace(exp_son,ret)# print(new_express)# return expexp = delwith(exp)else:ret = re.findall('-?\d+\.?\d*',exp)sum = 0for i in ret:sum += float(i)return str(sum)
#去空格:
new_express = express.replace(' ','')
# print(new_express)#提取括号里面没有其他括号的表达式
while True:ret = re.search('\([^()]+\)',new_express)if ret:express_no_bracket = ret.group()# print(express_no_bracket)ret = cal_express_no_bracket(express_no_bracket)new_express = new_express.replace(express_no_bracket,ret)# print(new_express)new_express = delwith(new_express)# print(new_express)else:print("已经没有括号了:",new_express)new_express = cal_express_no_bracket(new_express)print("已经没有括号了:",new_express)break

python正则计算器(转)相关推荐

  1. python 正则的使用 —— 编写一个简易的计算器

    python 正则的使用 -- 编写一个简易的计算器 在 Alex 的博客上看到的对正则这一章节作业是编写一个计算器,要求能计算出下面的算式. 1 - 2 * ( (60-30 +(-40/5) * ...

  2. python编写计算器输入1或2代表+或x_Python实现两款计算器功能示例

    本文实例为大家分享了Python实现计算器功能示例代码,供大家参考,具体内容如下 1.简单计算器 #计算一个表达式的时候,首先肯定是先算括号里面的,再算乘除法,后算加减法 import re # 1. ...

  3. python_正则表达式、正则函数、正则计算器

    # ### 正则表达式 匹配单个字符 import re """ lst = re.findall(正则表达式,要匹配的字符串) 返回列表,按照正则表达式匹配到的内容都扔 ...

  4. 译-在Python正则模式中search()和match()的区别是什么?

    问:在Python正则模式中search()和match()的区别是什么? 我已经阅读了现有的相关文档,但是我总是记不住,碰到类似的问题,我还要不断地查找再学习,我希望某个大神能够给个清晰的案例,让我 ...

  5. python 正则之提取字符串中的汉字,数字,字母

    python 正则之提取字符串中的汉字,数字,字母 #\d 匹配一个数字字符.等价于 [0-9] #\D 匹配一个非数字字符.等价于 [^0-9]#过滤字符串中的英文与符号,保留汉字 import r ...

  6. python 正则学习笔记

    python 正则学习笔记 官方document #1.0 import re m=re.search('(?<=abc)def','cxabcdefgb')print(m.group(0))# ...

  7. python正则group()的用法—正则提取括号内以及其他符号内内容

    python正则提取括号内以及其他符号内内容,我以前学过一点点正则,但是学的不深,用的正则也是最笨的正则方法,只会group(0). 然而,我今天又看了下正则,发现正则的提取确实好用.无论爬虫还是文本 ...

  8. Python正则简单实例分析

    本文实例讲述了Python正则简单用法.分享给大家供大家参考,具体如下: 悄悄打入公司内部UED的一个Python爱好者小众群,前两天一位牛人发了条消息: 小的测试题: re.split('(\W ) ...

  9. python实现计算器代码 博客园_python实现计算器

    python实现计算器 1.题目描述 实现一个计算器的控制台程序,支持加减乘除.乘方.括号.小数点,运算符优先级为括号>乘方>乘除>加减,同级别运算按照从左向右的顺序计算 1.1输入 ...

最新文章

  1. oracle改用户名名字,Oracle中如何更改用户名
  2. 下载python会对电脑有什么影响-用户在对Python下载的时候,这些注意事项不能忽视...
  3. C++ STL泛型编程——在ACM中的运用
  4. C++palindrome partitioning回文分割算法的实现(附完整源码)
  5. wso2 安装_WSO2注册表安装简介
  6. 一个可变的C++字符序列是5 0新增的
  7. linux-权限操作,数字法
  8. 设计师作品交流社区,让你的原创设计作品展示给世界
  9. linux虚拟机发邮件给163邮件
  10. Oracle自增ID实现
  11. Ubuntu安装kaldi
  12. 整理与随笔——抽象代数 第一章 群 1.1-1.2 代数体系、半群与群
  13. excel两个表格数据对比_表格技巧—Excel中如何查找相同的数据
  14. Excel加密、解密、无密码如何解密
  15. 梅花雨日历date.js
  16. centernet代码阅读笔记
  17. 计算机毕业设计ssm东湖爱心系统的众筹设计和实现t4a84系统+程序+源码+lw+远程部署
  18. 需要系数 计算机房,计算电流及需要系数表.xls
  19. ubuntu中创建新用户并添加管理员权限
  20. 《30天自制操作系统》第1天

热门文章

  1. 列表的下标;查找,判断,增加,删除函数
  2. php中js验证表单,js实现表单验证
  3. 图解法求最优解的例题_初一上学期,方程的解互为相反数,两种方法求解参数的值...
  4. date工具类 DateUtils.java
  5. idea如何打开pom引用依赖_IDEA使用Maven管理项目包,缺少pom文件中引入的依赖包...
  6. Spring Boot+JPA 有查询条件的查询
  7. Teamcenter 开发利器组合介绍。 Eclipse + Visual Studio
  8. oracle: unrecognized service,打开Linux ftp服务,如:vsftpd: unrecognized service
  9. 上海计算机二级python难吗_计算机二级难吗?
  10. 832计算机组成原理和数据结构,考试科目832计算机组成原理和数据结构.doc