计算器

分四种运算(加减乘除)、括号、去除最后括号、验证等式是否计算完成
bracket = re.compile(r'\([^()]+\)') # 找括号
multiplys = re.compile(r'(\d+\.?\d*\*-\d+\.?\d*)|(\d+\.?\d*\*\d+\.?\d*)') # 找乘法
divides = re.compile(r'(\d+\.?\d*/-\d+\.?\d*)|(\d+\.?\d*/\d+\.?\d*)') # 找除法
adds = re.compile(r'(-?\d+\.?\d*\+-\d+\.?\d*)|(-?\d+\.?\d*\+\d+\.?\d*)') # 找加法
subtracts = re.compile(r'(-?\d+\.?\d*--\d+\.?\d*)|(-?\d+\.?\d*-\d+\.?\d*)') # 找减法
out_cal = re.compile(r'\(?\+?-?\d+\)?') # 验证等式是否计算完成
out_strip = re.compile(r'[^(].*[^)]') # 去除最后括号
计算顺序:

去空格 --> 替换(--)为(+) --> 除法--> 乘法 --> 减法 --> 加法

beginning = ''.join([i for i in re.split('\s+', beginning)])  # 去除等式中的空格
beginning = beginning.replace('--', '+') # 去除特殊字符

代码来源

最新文章

  1. 【极品代码】一般人我不告诉他,手机端h5播放时不自动全屏代码
  2. OpenSSL 1.0.2e 3 Dec 2015
  3. .net 配置文件设计工具 Configuration Section Designer
  4. css实现三角形箭头
  5. Java中引用类型变量,对象,值类型,值传递,引用传递 区别与定义
  6. Netty
  7. NSUserDefaults简介及使用
  8. Python入门笔记(20):Python函数(3):关于lambda
  9. 两条直线(蓝桥杯)二分枚举+RMQ
  10. postgresql info
  11. ubuntu14.04使用wubi安装出错
  12. 复杂事件处理引擎—Esper参考(事件部分)
  13. django最佳实践
  14. 前端iFrame跨域问题
  15. Android之Drawable
  16. MyBatis-Select 流程
  17. C语言 · 超级玛丽
  18. Spark资源调度
  19. 压力测试工具JMeter入门教程<转>
  20. angularjs 路由参数

热门文章

  1. 【sqli-labs】 less1 GET - Error based - Single quotes - String(GET型基于错误的单引号字符型注入)
  2. C# 检测字符串是否为数字
  3. C 语言复杂声明
  4. select和epoll最大的区别
  5. TCP/IP数据包结构详解
  6. html第九节课
  7. 51nod1183 编辑距离【动态规划】
  8. dev的汉化
  9. Syncfusion在WinPhone8.1实现统计图
  10. js dom元素加载完成执行