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

求助:修复Higher/Lower游戏中上下界随机数生成问题

Higher/Lower游戏随机数生成问题修复

你的代码里有两个关键逻辑错误导致随机数无法正确生成:

  • 一开始已经用random.randint(lower, upper)生成了正确范围的随机数,但在else分支(也就是上下界合法的正常情况)里,你把correct_num设成了0,直接覆盖了之前的随机数,这就导致后续猜数的目标变成了0,完全不在用户输入的范围内。
  • 当用户输入的下界大于上界时,你重新获取了合法的上下界,但没有重新生成对应范围的随机数,此时的correct_num还是第一次基于错误范围生成的值,自然也不对。

下面是修正后的代码:

import random

user_name = input('What is your name?')
print("Welcome to the higher/lower game,", user_name + "!")

# 循环获取合法的上下界,直到用户输入正确
while True:
    lower = int(input("Enter the lower bound:"))
    upper = int(input("Enter the upper bound:"))
    if lower <= upper:
        break
    print("Lower bound can't be larger than upper bound, please re-enter.")

# 基于合法的上下界生成随机数
correct_num = random.randint(lower, upper)

guess = True
while guess:
    print(f"Great, now guess a number between {lower} and {upper}:")
    user_guess = int(input('Enter guess:'))
    if user_guess < correct_num:
        print("Nope, too low!")
    elif user_guess > correct_num:
        print("Nope, too high!")
    else:
        print("You got it!")
        break

修改说明:

  • 用循环替代原来的单次判断,确保用户输入的上下界一定合法,避免重复的输入代码。
  • 只有在确认上下界合法后,才生成对应的随机数,保证随机数始终在用户指定的范围内。
  • 去掉了无效的user_guess == correct_num判断(这个语句没有实际作用),优化了打印语句的格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 20:45:35