通过正则表达式计算带括号的数学表达式
import re s = "1+(2+(2*300+4) + 6) + (3 * (20+30+4))+(1-20-(20*6))" def f1(n): return eval(n) while True: result = re.split("\(([^()]+)\)",s,1) if len(result) == 3: front = result[0] middle = result[1] back = result[2] mid = f1(middle) s = front + str(mid) + back print("len",s) else: w = f1(s) print("结果:",w) break

浙公网安备 33010602011771号