利用python写一个简易的计算器

本文介绍了一种使用正则表达式和递归方法来解析并计算包含复杂嵌套括号的数学表达式的算法。通过Python实现,该算法能够正确处理括号内的运算优先级,适用于解决数学表达式求值问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import re


def caculate(s):

    str_res = re.findall("\([^()]*\)", s)
    if(len(str_res) != 0):
        for item in str_res:
            res_int = eval(item)
            res = s.replace(item, str(res_int))
        return caculate(res)
    else:
        return str(eval(s))


print(caculate("1 - 2 * ( (60-30 +(-9-2-5-2*3-5/3-40*4/2-3/5+6*3) * (-9-2-5-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )"))



#29938074.5936508
#29938074.5936508


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值