Python Tkinter数字猜谜游戏相同整数值比较判定不相等问题
Python Tkinter猜数字游戏故障修复
故障原因
代码核心问题为变量作用域与Tkinter变量类型使用错误:
- 全局声明的
randomNum是IntVar类型的Tkinter特殊变量,初始默认值为0 randomize()函数中直接执行randomNum = randint(0,10),会创建一个和全局变量同名的局部普通整型变量,完全不会修改全局IntVar类型randomNum的取值- 后续比较逻辑调用
randomNum.get()时,永远拿到初始值0,因此只有输入0会判定正确;你界面上展示的随机数存储在独立的randomStr变量中,和比较用的randomNum完全不同步,因此出现“输入值和展示值一致仍判定错误”的现象。
修复方案
仅需要修改randomize()函数的赋值逻辑,使用IntVar自带的set()方法修改取值即可:
def randomize(): # 生成随机数同时更新比较用的IntVar和展示用的StringVar,保证两者同步 new_random_num = randint(0,10) randomNum.set(new_random_num) randomStr.set(new_random_num)
修改后用于逻辑比较的随机数和界面展示的随机数会完全同步,输入对应数值即可正常判定猜测结果。
内容的提问来源于stack exchange,提问作者Unknown_Robot5
相关产品推荐
相关产品推荐

