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

Python Tkinter计算器求和异常:数值拼接而非累加问题求助

问题修复方案

核心问题说明

  • 每次调用加减函数时,都将累加基数total重置为0,没有读取总额输入框中已有的历史计算结果
  • 向总额输入框写入值时使用了insert()方法,该方法只会在指定位置插入新内容,不会覆盖原有内容,两次插入的数值就会出现拼接效果

修复后完整代码

import tkinter.messagebox
from tkinter import *
from tkinter import messagebox
import tkinter as tk

window = Tk()
window.title("Calculator")
window.geometry("300x100")

# 总额标签
labelT = Label(text="Total: ")
labelT.grid()
# 总额输入框
tBox = Entry()
tBox.grid(column=1, row=0)
tBox.configure(state='disabled')
# 数值输入框
numBox = Entry(window)
numBox.grid(column=1, row=1)


def sum():
    # 读取已有总额,无历史值则默认0
    try:
        total = int(tBox.get()) if tBox.get() else 0
    except:
        total = 0
    try:
        num = int(numBox.get())
    except:
        tk.messagebox.showwarning(title='Warning', message="请输入合法数字")
        numBox.delete(0, tk.END)
    else:
        tBox.configure(state='normal')
        total += num
        # 先清空原有内容再插入新结果,避免数值拼接
        tBox.delete(0, tk.END)
        tBox.insert(0, total)
        tBox.configure(state='disabled')
        # 自动清空输入框方便下一次操作
        numBox.delete(0, tk.END)


def subtract():
    # 读取已有总额,无历史值则默认0
    try:
        total = int(tBox.get()) if tBox.get() else 0
    except:
        total = 0
    try:
         num = int(numBox.get())
    except:
         tk.messagebox.showwarning(title='Warning', message="请输入合法数字")
         numBox.delete(0, tk.END)
    else:
        tBox.configure(state='normal')
        total -= num
        # 先清空原有内容再插入新结果,避免数值拼接
        tBox.delete(0, tk.END)
        tBox.insert(0, total)
        tBox.configure(state='disabled')
        # 自动清空输入框方便下一次操作
        numBox.delete(0, tk.END)


btn1 = Button(text="+", command=sum)
btn1.grid(column=0, row=2)
btn2 = Button(text="-", command=subtract)
btn2.grid(column=1, row=2)

window.mainloop()

优化说明

新增了计算完成后自动清空数值输入框的逻辑,无需用户手动删除上次输入的内容,操作更顺畅。

内容的提问来源于stack exchange,提问作者Hdhdh Hdhd

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:36:07