这篇文章主要介绍了Python设计实现的计算器功能,结合完整实例形式分析了Python3.5实现计算器功能的正则、字符串及数值运算等相关操作技巧,需要的朋友可以参考下
本文实例讲述了Python设计实现的计算器功能。分享给大家供大家参考,具体如下:
通过利用PYTHON 设计处理计算器的功能如:
1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 ))- (-4*3)/(16-3*2))
我的处理计算基本思路是:
解题思路是,需要优先处理内层括号运算--外层括号运算--先乘除后加减的原则:
1、正则处理用户输入的字符串,然后对其进行判断,判断计算公式是否有括号,有就先将计算公式进行正则处理,先获取最里层的每一个数据,然后一一计算
所要用到的正则是:
inner = re.search("\([^()]*\)", calc_input)
2、把有括号的计算公式计算出来的结果替换原来初始公式的位置,计算之前分别对重复运算符进行处理
需要处理的重复运算的函数是
def del_double(str):
str = str.replace("++", "+")
str = str.replace("--", "-")
str = str.replace("+-","-")
str = str.replace("- -","-")
str = str.replace("+ +","+")
return str
3、然后依次从里到外去除括号并进行计算,和位置替换
calc_input = calc_input.replace(inner.group(), str(ret))
将计算出来的结果分别替换原计算公式
4、最后得出没有括号的公式,合并调用计算控制函数进行计算,中间需要注意的就是 负号 和数字与*在一起的处理,其它还算可以。
具体逻辑思路图是: