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
您可能感兴趣
- pythonwhile语句的原理(谈谈Python中的while循环语句)
- python实现数据的预测(Python基于scipy实现信号滤波功能)
- python能把时间转化成毫秒级吗(python 获取毫秒数,计算调用时长的方法)
- python3.7.0使用方法(Python3.5模块的定义、导入、优化操作图文详解)
- python字符串找一个最大字符(Python查找最长不包含重复字符的子字符串算法示例)
- python列表怎么赋值(详解Python列表赋值复制深拷贝及5种浅拷贝)
- python中list用法(Python数据类型之List列表实例详解)
- python 文件操作(Python File文件 方法整理)
- python采集微信电脑端聊天信息(利用Python实现微信找房机器人实例教程)
- python机器人开发(python程序控制NAO机器人行走)
- python实现螺旋矩阵(Python3实现的旋转矩阵图像算法示例)
- python中字符串常用函数或方法(Python3.5字符串常用操作实例详解)
- python协程解释(在python里从协程返回一个值的示例)
- pythonmath库引入方法(python使用thrift教程的方法示例)
- python基本数据结构(浅谈Python编程中3个常用的数据结构和算法)
- python群聊提示(python-itchat 统计微信群、好友数量,及原始消息数据的实例)
- 这里输入关键词(请手动输入关键词)
- 小说 顾瑾岚拿出一套飞行棋,别说你连飞行棋都不会哦(顾瑾岚拿出一套飞行棋)
- 金品公司 界界乐中秋限定飞行棋礼盒 露营藤篮礼盒全新上市(界界乐中秋限定飞行棋礼盒)
- 必看 8月,相比七夕,更需要注意的是这些事(必看8月相比七夕)
- 8月23日11时16分将迎处暑,逐渐进入气象意义上的秋天(8月23日11时16分将迎处暑)
- 花不语 下 如果重来一次的话,你还会这么选择吗(花不语下如果重来一次的话)
热门推荐
- php怎么实现多线程(PHP实现的多进程控制demo示例)
- mysql命令输入行在哪(MySQL命令行操作时的编码问题详解)
- python进度条怎么实现(Python小进度条显示代码)
- html5功能讲解(Html5定位终极解决方案)
- php常用加密技术(php用户名的密码加密更安全的方法)
- 最新版MySQL 8.0.22下载安装超详细教程(Windows 64位)(最新版MySQL 8.0.22下载安装超详细教程Windows 64位)
- html5布局(Html5让容器充满屏幕高度或自适应剩余高度的布局实现)
- python读写文件实验心得(Python文件读写常见用法总结)
- springboot+vue项目演示(springboot+VUE实现登录注册)
- 如何将tomcat源码以maven方式运行(如何将tomcat源码以maven方式运行)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9