Python小算法 -- 原始计算器功能

使用基本语法计算类似如下算式的结果:

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

计算思路:

1、基本判断,输入的算式括号是否成对

2、依次获取最内层括号内的算式,按先乘除后加减计算结果,再将结果替换算式,直到算式中无括号为止

3、将没有括号的算式,按先乘除后加减计算结果

注:计算过程中要考虑减号重复,将--替换为+,将+-替换为-,同时要考虑小数的情况。

详细代码:

import re
#检查括号是否合法成对出现,利用堆栈思想
def checkBracket(expression):
    bracketList=[]
    for i in expression:
        if i == '(':
            bracketList.append(i)
        elif i == ')':
            if len(bracketList)==0:
                return False
            else:
                bracketList.pop()
    if len(bracketList)==0:
        return True
    else:
        return False

#计算乘除法算式
def multiplyDivide(expression):
    if '*' in expression:
        left,right=expressio
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值