首页 / 正则 / 函数加正则实现简单计算器
函数加正则实现简单计算器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了函数加正则实现简单计算器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2477字,纯文字阅读大概需要4分钟。
内容图文
本实现主要用到正则匹配的知识和函数的知识点完成一个能实现简单的加减乘除的计算器的运算
import re #乘除运算 def numl_mod(args): resurt = re.compile(‘(\d+\.?\d*)([*/])(\-?\d+\.?\d*)‘)#正则匹配,将匹配出来的结果赋给resurt while resurt.search(args):#while循环判断直到算出最终结果 new_num = resurt.search(args) num = new_num.group()#取出原值赋给num num1 = float(new_num.group(1)) num2 = new_num.group(2)#取出来的是 * / 号,在if 处进行判断 num3 = float(new_num.group(3)) if num2 == ‘*‘: result = num1 * num3#返回 * 的结果 elif num2 == ‘/‘: result = num1 / num3#返回 / 的结果 args = args.replace(num, str(result), 1)#将计算的结果替换返回 return args # print(numl_mod("10*2/5")) # #加减运算 def poor_add(args): resurt = re.compile(‘(\-?\d+\.?\d*)([-+])(\-?\d+\.?\d*)‘) while resurt.search(args): new_num = resurt.search(args) num = new_num.group() num1 = float(new_num.group(1)) num2 = new_num.group(2) num3 = float(new_num.group(3)) if num2 == ‘-‘: result = num1 - num3 elif num2 == ‘+‘: result = num1 + num3 args = args.replace(num, str(result), 1) return args # print(poor_add("3-5+6")) #检查判断去括号 # origin = "1-2*((60-30+(-9-2-5-2*3-5/3-40*4/2-3/5+6*3)*(-9-2-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*25))" # origin = input("Enter number >>>>>") #检测式子的合法性 def check(args): flag = True#默认标识位为真 if re.findall("[a-zA-Z]",args):#检查式子的合法性,不能含有大小写字母 print("error") flag = False return flag #检测运算 def format(args):#检测式子,将 含有空格/++/+-/--等进行替换,返回一个新的式子 new_args1 = args.replace("++", "+") new_args2 = new_args1.replace("+-", "-") new_args3 = new_args2.replace("--", "+") new_args4 = new_args3.replace("-+", "-") new_args5 = new_args4.replace(" ", "") new_args6 = new_args5.replace("*+","*") new_args = new_args6.replace("/+","/") return new_args print("--------------") print("欢迎使用计算机") print("--------------") #主代码块 #执行语句块 while True: choice = input("请选择 q/Q【退出】 y/Y 【执行】") if choice == "q" or choice == "Q": print("谢谢您的使用") break origin = input("Enter number >>>>>") if check(origin): new_origin = format(origin) while re.search("\(",new_origin):#匹配如果有括号,执行下面代码 new_new_origin = re.search("\([^()]+\)",new_origin).group()#匹配出最里面的括号里的式子 # print(new_new_origin) s = numl_mod(new_new_origin) # print(s) s1 = poor_add(s) s2 = s1[1:-1] new_origin = new_origin.replace(new_new_origin, s2, 1) # print(new_origin) # print(s2, type(s2)) # break else:#括号执行完后执行的代码块 resurt = numl_mod(new_origin) # print(resurt, "resurt") # print(resurt) new_resurt = poor_add(resurt) # a2 = a2[1:-1] print(new_resurt)#返回的最终结果,也就是我们要得到的最终计算结果
原文:http://www.cnblogs.com/flash55/p/5874717.html
内容总结
以上是互联网集市为您收集整理的函数加正则实现简单计算器全部内容,希望文章能够帮你解决函数加正则实现简单计算器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。