markdown 计算器

计算器

分四种运算(加减乘除)、括号、去除最后括号、验证等式是否计算完成
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('--', '+')	# 去除特殊字符

代码来源

原文地址:https://www.cnblogs.com/ipyanthony/p/9488846.html