Python While循环问题:用户猜数程序无法正常终止求助
修复猜数字程序的问题
你的核心问题是随机数生成的位置错了——原来的代码应该是每次用户输入后都会重新生成一个新的随机数,这就导致用户输入的数字刚好和新随机数匹配的概率极低,程序自然会一直运行。
正确的逻辑应该是:先固定生成一个目标随机数,然后让用户反复猜这个固定的数,直到猜对为止。
修复后的完整代码
import random # 只生成一次目标数字,放在循环外面 target_number = random.randint(1, 100) while True: try: user_guess = int(input("请输入1到100之间的数字:")) if 1 <= user_guess <= 100: if user_guess == target_number: print("猜对了!程序结束") break elif user_guess < target_number: print("猜小了,再试试") else: print("猜大了,再试试") else: print("请输入1到100范围内的数字!") except ValueError: print("请输入有效的整数!")
关键改动说明
- 把
random.randint(1,100)移到while循环外,确保目标数字全程固定。 - 增加了输入合法性校验,避免用户输入非整数或超出范围的数字导致报错。
内容的提问来源于stack exchange,提问作者vaйt
相关产品推荐
相关产品推荐

