Python解析 算数表达式求值 栈的使用

Python解析 算数表达式求值 栈的使用,第1张

概述使用Python实现一种算数表达式求值的算法,模拟这种使用栈的方式,这是由E.W.Dijkstra在20世纪60年代发明的一种非常简单的算法。代码模拟仅仅表现一种编程思想,代码的逻辑并不完全: if __name__ == "__main__": cal_str = input("请输入算数表达式(e.g.(((1+2)*(3+5))+2), 只适合简单的算数表达式):") n

使用Python实现一种算数表达式求值的算法,模拟这种使用栈的方式,这是由E.W.Dijkstra在20世纪60年代发明的一种非常简单的算法。代码模拟仅仅表现一种编程思想,代码的逻辑并不完全:

if __name__ == "__main__":    cal_str = input("请输入算数表达式(e.g.(((1+2)*(3+5))+2),只适合简单的算数表达式):")    num_stack = []    symbol_stack = []    for chr in cal_str:        #print(chr)        if chr == "(":            continue        elif chr == "" or chr == "\t" or chr == "\n":            continue        elif chr == "+":            symbol_stack.append(chr)        elif chr == "-":            symbol_stack.append(chr)        elif chr == "*":            symbol_stack.append(chr)        elif chr == "/":            symbol_stack.append(chr)        elif chr == "sqrt":            symbol_stack.append(chr)        elif chr == ")":            total_num = num_stack.pop()            Now_symbol = symbol_stack.pop()            if Now_symbol == "+":                total_num += num_stack.pop()            if Now_symbol == "-":                total_num -= num_stack.pop()            if Now_symbol == "*":                total_num *= num_stack.pop()            if Now_symbol == "/":                total_num /= num_stack.pop()            num_stack.append(total_num)        else:            num_stack.append(int(chr))    print(num_stack.pop())
总结

以上是内存溢出为你收集整理的Python解析 算数表达式求值 栈的使用全部内容,希望文章能够帮你解决Python解析 算数表达式求值 栈的使用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1190767.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存