给定一个算式运算,算式由运算数、+、-、*、/、(、)组成,请编写程序判断该算式运算是否合法。如果合法,计算该算式的值。 输入描述: 第一行输入一个运算表达式 输出描述: 如果表达式合法则计算其值,结果保留两位小数,如果不合法则输出 表达式不合法! 输入样例: (5+3)*9 输出样例: 72.00s
def calculate(expression):# 定义操作符优先级precedence = {'+': 1, '-': 1, '*': 2, '/': 2}def is_operator(char):return char in precedencedef apply_operation(op, a, b):if op == '+':return a + belif op == '-':return a - belif op == '*':return a * belif op == '/':return a / b# 使用两个栈来分别存储操作数和操作符numbers = []operators = []i = 0while i < len(expression):char