python正则表达式入门(Python正则表达式实现简易计算器功能示例)
类别:脚本大全 浏览量:1010
时间:2021-10-04 01:55:07 python正则表达式入门
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款非常方便的正则表达式工具供大家参考使用:
正则表达式在线测试工具:https://tool.zzvips.com/t/regex/
正则表达式在线生成工具:https://tool.zzvips.com/t/regcode/
希望本文所述对大家python程序设计有所帮助。
原文链接:https://blog.csdn.net/lm_is_dc/article/details/80077405
您可能感兴趣
- python找出数组的最大值(Python查找数组中数值和下标相等的元素示例二分查找)
- python中迭代器的作用(Python3.5迭代器与生成器用法实例分析)
- python try高级用法(python try 异常处理史上最全)
- python 内存读写(详解python持久化文件读写)
- python自定义定时任务(python的schedule定时任务模块二次封装方法)
- python线程安全队列(Python 限制线程的最大数量的方法Semaphore)
- python字符串的拼接与分割(Python字符串通过'+'和join函数拼接新字符串的性能测试比较)
- python常用的切片操作(使用python PIL库实现简单验证码的去噪方法步骤)
- python快速数据分类(Python基于滑动平均思想实现缺失数据填充的方法)
- python开源协议简介(对python 自定义协议的方法详解)
- python中的冒号怎么看(python 列表中[ ]中冒号‘:’的作用)
- pythonlambda是什么函数(Python之lambda匿名函数及map和filter的用法)
- 用python如何写tkinter(浅谈python3.6的tkinter运行问题)
- python经典算法(浅谈python常用程序算法)
- 基于python的加密算法(python实现维吉尼亚加密法)
- pythonpickle使用方法(Python supervisor强大的进程管理工具的使用)
- 学会这26种姿势,你就可以和兵哥哥切磋了(你就可以和兵哥哥切磋了)
- 吴彦祖陈冠希 恩怨 ,失去曾让他流泪的女友,终遇走过18年真爱(吴彦祖陈冠希恩怨)
- 痴情男神 吴彦祖 与妻子恋爱8年,结婚10年,家庭幸福美满(痴情男神吴彦祖)
- 成功破圈,小牛电动SQi强势开 跨(小牛电动SQi强势开)
- 挑战新国标电自天花板,九号机械师MMAX 110P深度体验(挑战新国标电自天花板)
- 《满江红》不要只当电影看,学生应该这样做(满江红不要只当电影看)
热门推荐
- yield函数详解(Yii框架的redis命令使用方法简单示例)
- mysql基础操作报告(gorm操作MySql数据库的方法)
- python中导入模块的命令(Python3 导入上级目录中的模块实例)
- python爬取微博登录数据(Python实现爬取马云的微博功能示例)
- web压力测试工具app(十款Web服务器性能压力测试工具)
- mysql标签的用法(mysql 的indexof函数用法说明)
- angular 常用模块(详解Angular之路由基础)
- nginx反向代理spring boot(Nginx+SpringBoot实现负载均衡的示例)
- pyqt第三方控件(PySide和PyQt加载ui文件的两种方法)
- dedecms提示信息(DedeCms fckeditor编辑器空白无法显示的相关问题)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9