You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

tkinter计算器GUI每次计算后结果追加=号问题求助

问题根因

这个bug是事件处理函数的分支逻辑设计错误导致的:

  • 你的click函数现在是三个独立判断分支:先判断点击内容是否为=,再单独判断点击内容是否为C,所有不满足C判断的情况都会触发末尾的字符追加逻辑
  • 当你点击=按钮时,第一个分支会正常计算出结果并写入输入框,接下来第二个if text == 'C'判断不成立,就会触发else分支,把=字符追加到已经计算好的结果末尾,最终就出现了25=的错误输出
修复方案

只需要把第二个独立的if判断改为elif,让三个分支形成互斥的判断关系即可,修改后的完整click函数代码如下:

def click(event):
    global string
    text = event.widget.cget('text')
    if text == '=':
        if string.get().isdigit():
            value = int(string.get())
        else:
            try:
                value = eval(string.get())
            except Exception as e:
                value = 'Error'
        string.set(value)
        screen.update()
    elif text == 'C':
        string.set(' ')
        screen.update()
    else:
        string.set(string.get() + text)
        screen.update()

修改后点击=按钮时,执行完计算分支后会直接跳出条件判断,不会再进入追加字符的逻辑,就能得到正确的计算结果。

内容的提问来源于stack exchange,提问作者Satyam Shankar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 00:48:00