• 即将更新编译原理,机器学习,JavaScript,HTML/CSS等文章,谢谢关注~
  • 由于算法限制,搜索时注意简化关键字,谢谢支持~
  • 网站不兼容IE5.0及以下,请使用主流浏览器访问.
  • 不使用栈Python计算器GUI程序

    实现一个计算器功能需要使用栈。

    比如我要计算:7-3*2+1,这个得先乘除后加减,这就需要栈了。

    1.自左向右扫描表达式,凡是遇到操作数一律进操作数栈。

    2.当遇到运算符时,如果他的优先级比运算符栈栈顶元素的优先级高就栈。反之,取出栈顶运算符和操作数栈顶的两个连续操作数运算,并将结果存入操作数栈,然后继续比较该运算符与栈顶的运算符的优先级。

    3.左括号一律进运算符栈,右括号一律不进运算符栈,取出栈顶运算符和操作数栈顶的两个连续操作数运算,并将结果存入操作数栈,直到取出左括号为止。

    然而,在Python中由于有eval函数的存在,就不需要使用栈来实现计算器了。

    eval(expression, globals=None, locals=None)  — 官方文档中的解释是,将字符串str当成有效的表达式来求值并返回计算结果。

    例如:

    接下来是利用tkinter编写的代码:

    效果:

    当然,计算结果会自动保存到当前目录下的txt文件中去。

    读者评分
    [评分人数: 1 平均分: 5]

    评论

    OmegaXYZ