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

Tkinter+SQLite校园测验项目提交答案触发TypeError求助

解决Tkinter测验项目提交答案时的类型错误

你遇到的TypeError: unorderable types: int() < Label()是个典型的类型误用问题——你在confirmAnswer函数里,把一个整数和Tkinter的Label组件对象直接做了比较操作,这两种完全不同的类型根本没法放在一起进行大小判断!

错误根源

在你代码的第126行,肯定存在类似这样的错误代码:

if some_integer < answer_label:
    # 这里的answer_label是你创建的Label组件对象,不是它显示的答案内容

你误把Label组件本身当成了它显示的文本/数值内容,才触发了类型不匹配的错误。

修复步骤

  1. 获取Label的实际显示内容
    要拿到Label上的文本内容,你需要用Label["text"]或者Label.cget("text")方法,比如:
    # 假设存储正确答案的Label名为correct_answer_label
    answer_text = correct_answer_label["text"]
    
  2. 转换成匹配的数值类型
    如果答案是整数类型,记得把文本转成int,同时用户输入的内容(从输入框获取的是字符串)也要转成整数再进行比较:
    # 获取用户输入并转换为整数
    user_input = answer_entry.get()
    user_answer = int(user_input)
    # 获取正确答案并转换为整数
    correct_answer = int(correct_answer_label["text"])
    # 现在可以正常进行比较判断了
    if user_answer == correct_answer:
        # 答对后的逻辑,比如加分
        score += 10
    
  3. 检查数据库返回值的类型
    另外还要确认从SQLite取出的答案类型,如果数据库里存的是字符串格式的数字,取出后也要先转换为数值类型再赋值给Label或者直接用于比较,避免后续再出现类型问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:37:31