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('--', '+')	# 去除特殊字符

代码来源

posted @ 2018-08-16 17:55  Done、  阅读(1370)  评论(0编辑  收藏  举报