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

Tkinter中计算Entry输入框列表数值总和触发TypeError如何解决

Tkinter多Entry输入框数字求和报错解决方案

核心错误原因

你存储在entries列表中的是Tkinter的Entry控件实例对象,不是输入框内的文本内容,直接传入int()进行类型转换不符合参数要求,因此触发类型错误。

其他存在的逻辑问题

  • 求和变量未初始化,首次调用计算方法时会触发未定义报错
  • 你在创建e1输入框时直接调用grid()方法并赋值,grid()方法返回值为None,后续调用e1.insert()写入结果时会触发NoneType无insert属性的报错
  • 每次计算前没有清空结果输入框的旧值,会导致多次计算的结果拼接在一起
  • 未做非数字输入的容错处理,输入框留空或填写非数字内容时会触发转换报错

修正后可运行的完整代码

from tkinter import *
window = Tk()
window.title("card")
window.geometry('1500x100')
entries = []

def total():
    sum_val = 0
    for entry in entries:
        # 先调用get()方法获取输入框内的文本内容
        input_text = entry.get().strip()
        # 容错处理:只累加合法数字
        if input_text.isdigit():
            sum_val += int(input_text)
    # 先清空结果框再写入新结果
    e1.delete(0, END)
    e1.insert(0, sum_val)

for i in range(10):
    en = Entry(window)
    en.grid(row=1, column=0+i)
    entries.append(en)

b1 = Button(window, text="计算总和", command=total)
b1.grid(row=7, column=1)

# 控件创建和布局分开写,避免变量被赋值为None
e1 = Entry(window)
e1.grid(row=20, column=2)

window.mainloop()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:06:01