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

Python猜数字游戏中if语句满足条件时无法打印文本如何解决

问题原因

while循环的执行触发条件是intTry != intRand,即仅当用户输入的数字和正确答案不相等时,循环内部的代码才会执行。
你写的if intTry == intRand判断被放在了这个while循环块内部,当用户猜对数字时,while的条件直接判定为不成立,整个循环块(包括内部的if判断)完全不会运行,自然永远无法触发"Well done"的打印逻辑。
额外说明:randint(1,5)本身返回值就是整数类型,外层嵌套int()做类型转换是多余操作。

修改方案

你可以任选一种符合代码逻辑的写法调整:

  • 方案1:利用循环的触发特性简化逻辑,循环仅在猜错时持续要求用户重输,一旦跳出循环就代表猜对,直接在循环外部打印成功提示即可。
    修改后的完整代码:
from random import randint

intRand = randint(1, 5)
intTry = int(input("Pick a random number between 1 and 5\n"))

while intTry != intRand:
    intTry = int(input("Try again\n"))
print("Well done")
  • 方案2:如果要把猜对的判断逻辑放在循环内部,就把while的循环条件设为恒真,在内部判断猜对后打印提示、主动跳出循环。
    修改后的完整代码:
from random import randint

intRand = randint(1, 5)

while True:
    intTry = int(input("Pick a random number between 1 and 5\n"))
    if intTry == intRand:
        print("Well done")
        break
    print("Try again")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 19:29:00