Python Canvas随机数生成器猜数功能判断错误求助
问题分析与修复方案
问题根源
你代码里的number变量存的不是显示的随机数字,而是canvas.create_text()返回的画布元素ID(整数)。拿这个ID和用户输入的数字比较,自然永远不相等,所以一直显示"Incorrect"。
修复步骤
- 先单独生成并保存随机数字,不要直接把
create_text的返回值当数字用 - 把这个保存好的数字传给
create_text的text参数用来显示 - 对比时用用户输入的数字和保存的随机数字比较
修改后的完整代码
import tkinter import random canvas = tkinter.Canvas(width=800, height=400) canvas.pack() # 先生成并保存随机数字 secret_number = random.randint(10000, 100000) # 用保存的数字创建文本元素,此时create_text返回的ID可以不用存(如果不需要后续修改这个文本的话) canvas.create_text(400, 200, text=secret_number) def prec(): canvas.create_rectangle(400 - 50, 200 - 50, 400 + 50, 200 + 50, outline="white", fill="white") canvas.after(2000, prec) guess = input("What number was there?: ") guess = int(guess) # 和保存的随机数字对比 if guess == secret_number: canvas.create_text(400, 100, text="Correct", font="arial 20") else: canvas.create_text(400, 100, text="Incorrect", font="arial 20") canvas.mainloop()
内容的提问来源于stack exchange,提问作者Ondrej Golian
相关产品推荐
相关产品推荐

