周三,晴,记录生活分享点滴
参考博客:https://www.cnblogs.com/alex3714/articles/5169958.html
Python版本:3.5
计算器
需求
1. 实现加减乘除及括号优先级解析
2. 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )等类似公式后,必须自己解析里面的(),+,-,*,/符号和公式,运算后得出结果,结果必须与真实的计算器所得出的结果一致
示例
构建
import re import functools def minus_operator_handler(formula): '''处理一些特殊的减号运算''' minus_operators = re.split("-", formula) calc_list = re.findall("[0-9]", formula) if minus_operators[0] == '': # 第一值肯定是负号 calc_list[0] = '-%s' % calc_list[0] res = functools.reduce(lambda x, y: float(x) - float(y), calc_list) print("