博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
运用正则表达式不使用内置方法实现计算器
阅读量:6798 次
发布时间:2019-06-26

本文共 1839 字,大约阅读时间需要 6 分钟。

#__author__:"Jay guo" #__date__:2016/9/12 import re def check(s):     if re.findall("[a-zA-Z]",s):         return "quit"     else:         return s def format(s):     s = s.replace(" ","")     s = s.replace("++","+")     s = s.replace("+-","-")     s = s.replace("-+","-")     s = s.replace("--","+")     return s def mul_exc(s):     while True:         ret = re.search("\d+\.?\d*[*/][+-]?\d+\.?\d*", s)         if ret:             x,y = re.split("[*/]",ret.group())             x = float(x)             y = float(y)             if "*" in ret.group():                 end = x*y             else:                 end = x/y             s = s.replace(ret.group(),str(end))         else:             break     return s def add_sub(s):     while True:         ret = re.search("\d+\.?\d*[+-]\d+\.?\d*", s)         if ret:             x,y = re.split("[+-]", ret.group())             x = float(x)             y = float(y)             if "+" in ret.group():                 end = x + y             else:                 end = x - y             s = s.replace(ret.group(), str(end))         else:             break     s = s.replace("(","")     s = s.replace(")","")     return s def main():     while True:         user = input("PLZ input>>>>:  ")         user = check(user)         if user == "quit":             print ("False")             continue         user = format(user)         user = "(" + user + ")"         while True:             ret = re.search("\([^()]*\)",user)             if ret:                 ret = ret.group()                 ret1 = mul_exc(ret)                 ret1 = add_sub(ret1)                 user = user.replace(ret,ret1)                 user = format(user)             else:                 user = add_sub(user)                 break         print("结果",user) main()

转载于:https://www.cnblogs.com/276381225q/p/5864532.html

你可能感兴趣的文章
开源可实现迁移
查看>>
融合式架构Nutanix深入分析一
查看>>
RHEL6.3下配置简单Apache https
查看>>
利用Cocos2dx-3.0新物理特性模拟弹珠迷宫
查看>>
Office 365系列之三:Office365初体验
查看>>
VMware View client for iPad在医疗行业的应用
查看>>
Altiris 7.1 Agent
查看>>
独家爆料:创宇云与小鸟云的故事
查看>>
Windows Server 2012 RMS for Exchange Server 2013
查看>>
Linux网络IP配置
查看>>
FireEye:K3chang行动***欧洲外交部门
查看>>
关于Spring MVC 4,你需要知道的那些事
查看>>
如何远程调试Python代码
查看>>
你会用Python写洗脑神曲吗?
查看>>
kubernetes集群配置serviceaccount
查看>>
MyBatis多参数传递之默认命名方式示例——MyBatis学习笔记之十二
查看>>
Exchange 2013部署系列之(六)配置邮件流和客户端访问
查看>>
创业三年,走通一条路
查看>>
Mac 平台下功能强大的Shimo软件使用指南
查看>>
Hyper-V 3中虚拟机CPU竞争机制
查看>>