python正则计算器(转)
原文: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正则计算器(转)相关推荐
- python 正则的使用 —— 编写一个简易的计算器
python 正则的使用 -- 编写一个简易的计算器 在 Alex 的博客上看到的对正则这一章节作业是编写一个计算器,要求能计算出下面的算式. 1 - 2 * ( (60-30 +(-40/5) * ...
- python编写计算器输入1或2代表+或x_Python实现两款计算器功能示例
本文实例为大家分享了Python实现计算器功能示例代码,供大家参考,具体内容如下 1.简单计算器 #计算一个表达式的时候,首先肯定是先算括号里面的,再算乘除法,后算加减法 import re # 1. ...
- python_正则表达式、正则函数、正则计算器
# ### 正则表达式 匹配单个字符 import re """ lst = re.findall(正则表达式,要匹配的字符串) 返回列表,按照正则表达式匹配到的内容都扔 ...
- 译-在Python正则模式中search()和match()的区别是什么?
问:在Python正则模式中search()和match()的区别是什么? 我已经阅读了现有的相关文档,但是我总是记不住,碰到类似的问题,我还要不断地查找再学习,我希望某个大神能够给个清晰的案例,让我 ...
- python 正则之提取字符串中的汉字,数字,字母
python 正则之提取字符串中的汉字,数字,字母 #\d 匹配一个数字字符.等价于 [0-9] #\D 匹配一个非数字字符.等价于 [^0-9]#过滤字符串中的英文与符号,保留汉字 import r ...
- python 正则学习笔记
python 正则学习笔记 官方document #1.0 import re m=re.search('(?<=abc)def','cxabcdefgb')print(m.group(0))# ...
- python正则group()的用法—正则提取括号内以及其他符号内内容
python正则提取括号内以及其他符号内内容,我以前学过一点点正则,但是学的不深,用的正则也是最笨的正则方法,只会group(0). 然而,我今天又看了下正则,发现正则的提取确实好用.无论爬虫还是文本 ...
- Python正则简单实例分析
本文实例讲述了Python正则简单用法.分享给大家供大家参考,具体如下: 悄悄打入公司内部UED的一个Python爱好者小众群,前两天一位牛人发了条消息: 小的测试题: re.split('(\W ) ...
- python实现计算器代码 博客园_python实现计算器
python实现计算器 1.题目描述 实现一个计算器的控制台程序,支持加减乘除.乘方.括号.小数点,运算符优先级为括号>乘方>乘除>加减,同级别运算按照从左向右的顺序计算 1.1输入 ...
最新文章
- oracle改用户名名字,Oracle中如何更改用户名
- 下载python会对电脑有什么影响-用户在对Python下载的时候,这些注意事项不能忽视...
- C++ STL泛型编程——在ACM中的运用
- C++palindrome partitioning回文分割算法的实现(附完整源码)
- wso2 安装_WSO2注册表安装简介
- 一个可变的C++字符序列是5 0新增的
- linux-权限操作,数字法
- 设计师作品交流社区,让你的原创设计作品展示给世界
- linux虚拟机发邮件给163邮件
- Oracle自增ID实现
- Ubuntu安装kaldi
- 整理与随笔——抽象代数 第一章 群 1.1-1.2 代数体系、半群与群
- excel两个表格数据对比_表格技巧—Excel中如何查找相同的数据
- Excel加密、解密、无密码如何解密
- 梅花雨日历date.js
- centernet代码阅读笔记
- 计算机毕业设计ssm东湖爱心系统的众筹设计和实现t4a84系统+程序+源码+lw+远程部署
- 需要系数 计算机房,计算电流及需要系数表.xls
- ubuntu中创建新用户并添加管理员权限
- 《30天自制操作系统》第1天
热门文章
- 列表的下标;查找,判断,增加,删除函数
- php中js验证表单,js实现表单验证
- 图解法求最优解的例题_初一上学期,方程的解互为相反数,两种方法求解参数的值...
- date工具类 DateUtils.java
- idea如何打开pom引用依赖_IDEA使用Maven管理项目包,缺少pom文件中引入的依赖包...
- Spring Boot+JPA 有查询条件的查询
- Teamcenter 开发利器组合介绍。 Eclipse + Visual Studio
- oracle: unrecognized service,打开Linux ftp服务,如:vsftpd: unrecognized service
- 上海计算机二级python难吗_计算机二级难吗?
- 832计算机组成原理和数据结构,考试科目832计算机组成原理和数据结构.doc