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

Python Canvas随机数生成器猜数功能判断错误求助

问题分析与修复方案

问题根源

你代码里的number变量存的不是显示的随机数字,而是canvas.create_text()返回的画布元素ID(整数)。拿这个ID和用户输入的数字比较,自然永远不相等,所以一直显示"Incorrect"。

修复步骤

  1. 先单独生成并保存随机数字,不要直接把create_text的返回值当数字用
  2. 把这个保存好的数字传给create_text的text参数用来显示
  3. 对比时用用户输入的数字和保存的随机数字比较

修改后的完整代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 16:03:15