Python练习-天已经亮了计算器也终于完成了

 1 # 编辑者:闫龙
 2 import re #导入re模块(正则表达式)
 3 calc2 = "1-2*((60-30+(-40/52)*(9-2*5/3+7/3*-99/4*2998+10*568/14))-(-4*3)/(16-3*2))"
 4 calc1 = "1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))"
 5 calc = "1-2*((60*30+(-40/5)*(9*2*5/3+7/3*99/4*2998+10*568/14))-(-4*32)/(16-3*2))"
 6 def Format(Str):
 7     "格式化运算式"
 8     Str = Str.replace("+-","-")
 9     Str = Str.replace("-+", "-")
10     Str = Str.replace("++", "+")
11     Str = Str.replace("--", "+")
12     return Str
13 def SumCut(Str):
14     while re.search("-?[0-9]+\.?[0-9]*[-+][0-9]+\.?[0-9]*",Str):
15         newRes= re.search("-?[0-9]+\.?[0-9]*[-+][0-9]+\.?[0-9]*",Str)
16         WhatIs = newRes.group()
17         if(WhatIs.find("-") > 0):
18             l = WhatIs.split("-")
19             Str = Str.replace(WhatIs,str(float(l[0])-float(l[1])))
20         elif(WhatIs.find("+") > 0):
21             l = WhatIs.split("+")
22             Str = Str.replace(WhatIs,str(float(l[0])+float(l[1])))
23     return Str.replace("(","").replace(")","")
24 def MulDiv(Str):
25     while re.search("-?[0-9]+\.?[0-9]*[/*].?[0-9]+\.?[0-9]*",Str):
26         newRes= re.search("-?[0-9]+\.?[0-9]*[/*].?[0-9]+\.?[0-9]*",Str)
27         WhatIs = newRes.group()
28         if(WhatIs.find("/") > 0):
29             l = WhatIs.split("/")
30             Str = Str.replace(WhatIs,str(float(l[0])/float(l[1])))
31         elif(WhatIs.find("*") > 0):
32             l = WhatIs.split("*")
33             if(float(l[0])<0 and float(l[1])<0):
34                 Str = Str.replace(WhatIs, "+"+str(float(l[0]) * float(l[1])))
35             else:
36                 Str = Str.replace(WhatIs,str(float(l[0])*float(l[1])))
37     return Format(Str)
38 while re.search("\([^()]+\)",calc):
39     res = re.search("\([^()]+\)", calc)
40     resTwo = MulDiv(Format(res.group()))
41     resTwo = SumCut(resTwo)
42     calc = calc.replace(res.group(),resTwo)
43 else:
44     resTwo = MulDiv(calc)
45     resTwo = SumCut(resTwo)
46     calc = resTwo
47 print(calc)

以上,我什么也不想说,睡觉!

时间: 2024-10-07 05:25:29

Python练习-天已经亮了计算器也终于完成了的相关文章

Python 第五天 递归,计算器(2)

利用函数编写如下数列: 斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368 1 def func(arg1,arg2): if arg1 == 0: pass arg3 = arg1 + arg2 if arg3>1000; return arg3#他的调用者应该是他的前一次func函数, return f

用python的正则表达式实现简单的计算器功能

#!/usr/bin/env python # -*- coding:utf-8 -*- import sys import re def welcome_func(): """ 输入判断 :param expression: 表达式 :return: 返回有效表达式 """ welcome_str = "超级计算器" print(welcome_str.center(50,'*'),'\n') # 输出欢迎界面 while

【每天学点Python】案例三:BMR计算器

BMR计算器 V1.0 案例描述: 基础代谢率(Basal Metabolic Rate,简称BMR)是指:我们在安静状态下(通常为静卧状态)消耗的最低热量,人的其他活动都建立在这个基础上 计算公式: BMR(男)=(13.7*体重(Kg))+(5.0*身高(cm))-(6.8*年龄)+ 66 BMR(女)=(9.6*体重(Kg))+(1.8*身高(公分))-(4.7*年龄)+ 655 案例分析: 输入: 性别: 体重: 身高: 体重 上机实验: 1 """ 2 作者:王鑫正

Python体验(10)-图形界面之计算器

1 import wx 2 class Form(wx.Frame): 3 def __init__( self, parent, id, title ): 4 wx.Frame.__init__(self,parent,id,title,wx.DefaultPosition,wx.Size(300, 250)) 5 self.formula = False 6 menuBar = wx.MenuBar() 7 mnuFile = wx.Menu() 8 mnuFile.Append( 22,

python基础教程(一)

之所以选择py交易有以下几点:1.python是胶水语言(跨平台),2.python无所不能(除了底层),3.python编写方便(notepad++等文本编辑器就能搞事情),4.渗透方面很多脚本都是py编写的(而且google的网站也是py) 安装与运行交互式解释器 在绝大多数linux和 UNIX系统安装中(包括Mac OS X),Python的解释器就已经存在了.我们可以在提示符下输入python命令进行验证(作者环境ubuntu) [email protected]:~$ python

python--------re 正则表达式(计算器)

re是一门小型语言 元字符 .      通配符除了\n ^     以什么开始的匹配 $     以什么结尾的匹配 *     重复前一个条件,最少0个,[0,∞] +     重复前一个条件,最少1个,[1,∞] ?   重复前面的条件,最少0个,最多1个[0,1] {x}  重复前面的x次,x为数字,{x,y}最少x次,最多y-1次,{x,}最少x次,最多不限 |     或的意思 \ 反斜杠后跟元字符去除特殊功能 \. 就是匹配点. \+ 匹配+ \\\\ 匹配\ 等于 r"\\&quo

Python代码样例列表

├─algorithm│       Python用户推荐系统曼哈顿算法实现.py│      NFA引擎,Python正则测试工具应用示例.py│      Python datetime计时程序的实现方法.py│      python du熊学斐波那契实现.py│      python lambda实现求素数的简短代码.py│      Python localtime()方法计算今天是一年中第几周.py│      Python math方法算24点代码详解.py│      Pyth

python基础知识 04 数学的基础知识

课程三 数字的基础知识 python控制台可以执行的当做计算器去执行算数 比如 在python控制台执行执行 [[email protected] ~]# ipython Python 3.7.4 (default, Aug 13 2019, 20:35:49) Type 'copyright', 'credits' or 'license' for more information IPython 7.8.0 -- An enhanced Interactive Python. Type '?

python灰帽子学习感想

Gray Hat Python Python Programming for hackers and reverse engineers Python灰帽子:黑客与逆向project师的Python编程之道 几乎相同两周之前看到了这本书,心情非常是激动啊,下定决心一定要好好看看. 好了一个星期的边看边写,发现激动的心情不在了,里面的内容都是为了底层debuger的 的内容.要安装的东西跟版本号的关系还非常大,都没怎么更新. 换了低版本号的Python安装起来也是不易的.终于能成功安装即可,各个安