如何修复Python猜数字游戏中的无限循环问题
解决猜数字游戏的无限循环问题
嘿,我一眼就揪出问题啦!你的代码陷入无限循环的核心原因是:在while循环内部没有更新用户输入的数字。
你看,原来的代码里,number只在循环开始前被赋值了一次。当第一次猜不对的时候,循环会一直用这个旧的number和固定的随机数rn比较,永远满足number != rn的条件,自然就停不下来了。
修复后的代码
import random # 先固定生成一个1-10的随机数,避免循环内重复生成 rn = random.randint(1, 10) # 第一次引导用户猜数字 number = int(input("Guess a number between 1 and 10: ")) while number != rn: print("Sorry. Try again.") # 给出高低提示 if number < rn: print("Higher!") else: print("Lower!") # 关键:在循环内让用户输入新数字,更新number的值 number = int(input("Guess again: ")) # 跳出循环说明猜中啦 print("Yes! You got it right!")
核心修改说明
- 在while循环内部添加了
number = int(input("Guess again: ")),这样每次循环都会获取用户的新输入,才有机会让number等于随机数rn,从而跳出循环。 - 把随机数生成放在循环外,确保整个游戏过程中目标数字是固定的(原来的代码这里没问题,但调整位置逻辑更清晰)。
内容的提问来源于stack exchange,提问作者Bstykemain
相关产品推荐
相关产品推荐

