网络编程
位置:首页>> 网络编程>> Python编程>> Python正则表达式实现简易计算器功能示例

Python正则表达式实现简易计算器功能示例

作者:微信1257309054  发布时间:2021-03-24 16:11:43 

标签:Python,正则表达式,计算器

本文实例讲述了Python正则表达式实现简易计算器功能。分享给大家供大家参考,具体如下:

需求:使用正则表达式完成一个简易计算器。

功能:能够计算简单的表达式。

如:1*2*((1+2)/(2+3)+1)*5.1-3+2**2


import re
class SimpleCalc(object):
 # 表达式检测
 def check(self,exp):
   # 合法字符检测
   res = re.findall(r"[^\d\+\-\*/\(\)\.]", exp)
   print(res)
   if res:
     print("表达式不正确!!!")
     print("输入了非法字符:", res)
     return False
   # 括号检测
   res = re.findall(r"(?:[\d\)]\()|(?:\([\*/\)])|(?:[\-\+\*/]\))",exp)
   if res :
     print("表达式不正确!!!")
     print("括号使用有误:", res)
     return False
   res = re.findall(r"\(|\)", exp)
   if res.count('(') != res.count(')'):
     print("表达式不正确!!!")
     print("括号不匹配:", res)
     return False
   # 运算符检测
   res = re.findall(r"[\-\+/]{2,}|\*{3,}", exp)
   if res:
     print("表达式不正确!!!")
     print("运算符有误:", res)
     return False
   # 小数点位置检测
   res = re.findall(r"(^(?<=[0-9])?\.\d+)|(\.\d*?\.)|\.(\D|$)", exp)
   if res:
     print("表达式不正确!!!")
     print("小数点位置有误:", res)
     return False
   return True
def main():
 simpleCalc = SimpleCalc()
 while True:
   exp = input("请输入一个正确的表达式(退出请输入t):\n")
   if exp == 't':
     break
   if simpleCalc.check(exp):
     print('=',eval(exp))
   else:
     continue
if __name__ == '__main__':
 main()

输出:

请输入一个正确的表达式(退出请输入t):
1*2*((1+2)/(2+3)+1)*5.1-3+2**2
[]
= 17.32
请输入一个正确的表达式(退出请输入t):
12+a
['a']
表达式不正确!!!
输入了非法字符: ['a']
请输入一个正确的表达式(退出请输入t):

PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript

正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg

希望本文所述对大家Python程序设计有所帮助。

来源:https://blog.csdn.net/lm_is_dc/article/details/80077405

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com