解决思路:最后,我们来看看最简单的运算函数和判断运算符函数。
定义函数:def calculate(n1, n2, operator)
- param n1: float
- param n2: float
- param operator: + - * /
- return: float
def calculate(n1, n2, operator):
result = 0
if operator == "+":
result = n1 + n2
if operator == "-":
result = n1 - n2
if operator == "*":
result = n1 * n2
if operator == "/":
result = n1 / n2
return result
定义函数:def is_operator(e)
- param e: str
- return: bool
def is_operator(e):
# opers的数据结构是列表
opers = ['+', '-', '*', '/', '(', ')']
return True if e in opers else False
最后的调用
这里定义了两个变量 result 和 _ 来接收 final_calc 返回的两个列表,即数字栈和运算符栈。由于结果肯定只有一个,所以列表 result 中只有一个元素,并且可通过 result[0] 来查看。
if __name__ == '__main__':
formula = input('请输入:\n')
print("算式:", formula)
formula_list = formula_format(formula)
result, _ = final_calc(formula_list)
print("计算结果:", result[0])
最后的总结文章来源:https://www.toymoban.com/news/detail-598711.html
抽象出几个函数:文章来源地址https://www.toymoban.com/news/detail-598711.html
- 弹栈时计算 “两个数字和运算符组成的算式” 的结果的函数。
- 判断元素是数字还是运算符的函数。
- 把算式处理成列表形式的函数。如:'-1-2*((-2+3)+(-2/2))' 应该处理成:['-1', '-', '2', '*', '(', '(', '-2', '+', '3', ')', '+', '(', '-2', '/', '2', ')', ')'] 。
- 决策函数,决定应该是入栈,弹栈运算,还是弹栈丢弃。
- 主函数,遍历算式列表,计算最终结果。
到了这里,关于【Python】简单计算器实现(四)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!