python 计算器

Posted 氐惆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 计算器相关的知识,希望对你有一定的参考价值。

import re
def atom_cal(exp): # 计算乘除法
    if * in exp:
        a,b = exp.split(*)
        return str(float(a) * float(b))
    elif / in exp:
        a, b = exp.split(/)
        return str(float(a) / float(b))

def fuhaochuli(exp): # 符号处理
    exp = exp.replace(++,+)
    exp = exp.replace(-+,-)
    exp = exp.replace(+-,-)
    exp = exp.replace(--,+)
    return exp

def mul_div(exp): # 匹配乘除法进行计算并替换
    while True:
        ret = re.search(d+(.d+)?[*/]-?d+(.d+)?,exp)
        if ret:
            a = ret.group()
            b = atom_cal(a)
            exp = exp.replace(a,b)
        else:return exp

def add_sub(exp): # 匹配加减法计算并进行替换
    res = re.findall([-+]?d+(?:.d+)?,exp)
    exp_sum = 0
    for i in res:
        exp_sum += float(i)
    return exp_sum

def cal(exp):    # 计算
    exp = mul_div(exp)
    exp = fuhaochuli(exp)
    exp_sum = add_sub(exp)
    return exp_sum

def main(exp):    # 格式处理,计算结果并进行替换
    exp = exp.replace(" ",‘‘)
    while True:
        ret = re.search(([^()]+),exp)
        if ret:
            inner_bracket = ret.group()
            res = str(cal(inner_bracket))
            exp = exp.replace(inner_bracket,res)
            exp = fuhaochuli(exp)
        else:break
    return cal(exp)

s = 3*(1+3-0.62)
ret = main(s)
print(ret)

 

以上是关于python 计算器的主要内容,如果未能解决你的问题,请参考以下文章

python 有用的Python代码片段

Python 向 Postman 请求代码片段

python [代码片段]一些有趣的代码#sort

使用从循环内的代码片段中提取的函数避免代码冗余/计算开销

使用 Python 代码片段编写 LaTeX 文档

python 机器学习有用的代码片段