计算器
分四种运算(加减乘除)、括号、去除最后括号、验证等式是否计算完成
bracket = re.compile(r'([^()]+)') # 找括号
multiplys = re.compile(r'(d+.?d**-d+.?d*)|(d+.?d**d+.?d*)') # 找乘法
divides = re.compile(r'(d+.?d*/-d+.?d*)|(d+.?d*/d+.?d*)') # 找除法
adds = re.compile(r'(-?d+.?d*+-d+.?d*)|(-?d+.?d*+d+.?d*)') # 找加法
subtracts = re.compile(r'(-?d+.?d*--d+.?d*)|(-?d+.?d*-d+.?d*)') # 找减法
out_cal = re.compile(r'(?+?-?d+)?') # 验证等式是否计算完成
out_strip = re.compile(r'[^(].*[^)]') # 去除最后括号
计算顺序:
去空格 --> 替换(--)为(+) --> 除法--> 乘法 --> 减法 --> 加法
beginning = ''.join([i for i in re.split('s+', beginning)]) # 去除等式中的空格
beginning = beginning.replace('--', '+') # 去除特殊字符