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款非常方便的正则表达式工具供大家参考使用:
希望本文所述对大家Python程序设计有所帮助。
python表达式计算器_Python正则表达式实现简易计算器功能示例相关推荐
- pythontkinter做计算器_Python Tkinter实现简易计算器功能
闲暇时间用tkinter写了个简易计算器,可实现简单的加减乘除运算,用了Button和Entry2个控件,下面是代码,只是简单的用了偏函数partial,因为那么多button的大部分参数都是一样的, ...
- python操作系统启动_Python实现查看系统启动项功能示例
本文实例讲述了Python实现查看系统启动项功能.分享给大家供大家参考,具体如下: 一.代码 # -*- coding:utf-8 -*- #! python3 from win32api impor ...
- pythongui做计算器_python GUI之简易计算器
利用内置的tkinter/Tkinter库可实现基本的GUI程序. 示例图 源代码 #coding=utf8 """ @author:kinegratii "& ...
- python编程计算器_Python设计实现的计算器功能完整实例
本文实例讲述了Python设计实现的计算器功能.分享给大家供大家参考,具体如下: 通过利用PYTHON 设计处理计算器的功能如: 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/ ...
- python课程设计计算器_Python设计实现的计算器功能完整实例
本文实例讲述了Python设计实现的计算器功能.分享给大家供大家参考,具体如下: 通过利用PYTHON 设计处理计算器的功能如: 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/ ...
- 基于Python中tkinter做的可视化简易计算器(代码有注释,利于理解)
Python可视化简易计算器 基于GUI库:tkinter做的一个简单计算器 开发软件 Pycharm2019.3 代码如下:(有对代码的简单分析,易于理解) import re import tki ...
- Python课程设计,设计一个简易计算器
在Python课程设计中,设计一个简易计算器,根据课本内容所写 import tkinter import tkinter.messagebox import reroot = tkinter.Tk( ...
- java awt 简单计算器,JAVA Swing 开发简易计算器(上)
开发一个简易的计算器我们主要分为两大部分:图形界面设计与具体功能实现.这篇文章讲图形界面设计,下篇讲具体功能实现. 代码下载:https://github.com/taifus/Java_Calcul ...
- android计算器弹窗,android实现简易计算器
本文实例为大家分享了android实现简易计算器展示的具体代码,供大家参考,具体内容如下 效果图: 一.如图,首先布局计算器主页显示 activity_main.xml xmlns:tools=&qu ...
最新文章
- Java学习笔记32
- 第十周项目实践 哈夫曼树的建立哈夫曼编码
- 百度地图与所托瑞安达成深度合作 共同推进商用车安全智能驾驶领域创新
- 使用gdal和java对TIF格式正射影像进行拉普拉斯锐化
- ansible常用基础命令整合
- SSM之Mybatis框架初步
- 动态属性 的简单思考
- php经典排序算法,PHP中四大经典排序算法
- html5 embed 不自动播放,html5自动播放与 iframe 你管videoautoplay=1不工作?_html5_开发99编程知识库...
- Ansys Speos | 助力汽车按键开关设计与优化
- cv2-drawline
- 结构梁配筋最牛插件_Revit结构出图案例分享
- java如何设置直线的宽度_设置线条的宽度lineWidth
- fir.im Weekly - 如何打造 Github 「爆款」开源项目
- 项目管理理论中关于软件项目外包采购管理的探讨
- 如何在局域网中查看其他电脑上的文件
- adb连接各种模拟器
- Process exited after 8.127 seconds with return value 3221226356,求解决方案!
- springboot+vue+java廉租房屋维修申请系统
- 桌宠启动不了,提示日文java6报错等,解决方案
热门文章
- 影像组学视频学习笔记(7)-特征筛选之LASSO回归(代码)、Li‘s have a solution and plan.
- 熊出没之伐木机器人_熊出没第一首富之争:李老板真的是第一吗?难道不是他第一?...
- r语言 图形一览_R语言之图形概览
- Grafana常用的监控
- 嵌入式开发有年龄限制吗_2021年考监理工程师有年龄限制吗?女生可以考监理工程师吗?...
- 初中教师资格证计算机试讲教案模板,初中数学教师资格证面试教案模板: 《投影》...
- 基于.Net Core开发现代化Web应用程序系列课程和文章
- mongodb php linux,mongodb 及PHP的MongoDB 扩展安装
- b temia 外骨骼机器人_只能提高工作效率?现代外骨骼正在突破重重壁垒,走向融合的未来...
- 性能压测服务器502报错,一种交易系统的性能测试方法及相关服务器