当前位置:脚本大全 > > 正文

python正则表达式入门(Python正则表达式实现简易计算器功能示例)

时间:2021-10-04 01:55:07类别:脚本大全

python正则表达式入门

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

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

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

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

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

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 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款非常方便的正则表达式工具供大家参考使用:

    正则表达式在线测试工具:https://tool.zzvips.com/t/regex/

    正则表达式在线生成工具:https://tool.zzvips.com/t/regcode/

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

    原文链接:https://blog.csdn.net/lm_is_dc/article/details/80077405

    上一篇下一篇

    猜您喜欢

    热门推荐