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

Python猜数字游戏中如何将已生成的随机数赋值给非随机变量

核心疑问解答

你完全不需要额外操作,你代码里已经实现了这个需求。random.randint()执行后仅会生成一次固定的整数结果,你已经把它赋值给了num变量,这个num就是普通的非随机变量,它的值就是首次生成的那个随机数,后续不会自动变化,和你直接写num = 5没有任何区别,你可以直接用它的值调整区间范围。

完整实现逻辑

你可以按照下面的流程完成动态猜数字的功能:

  • 首先获取用户输入的区间上下限,增加基础判断避免用户输入的低值大于高值
  • 进入循环逻辑,每次根据当前的上下限生成猜测值,询问用户猜测结果
  • 根据用户的输入调整区间:
    • 用户回答偏高:将当前区间上限设置为本次猜测值 - 1
    • 用户回答偏低:将当前区间下限设置为本次猜测值 + 1
    • 用户回答正确:结束循环,输出猜对的提示
  • 增加输入校验和逻辑校验,避免用户输入非法内容或者回答矛盾导致区间失效

完整示例代码

import random

# 获取用户自定义区间
low = int(input("Choose the smaller number: "))
high = int(input("Choose the higher number: "))

# 自动处理用户输入区间非法的情况
if low > high:
    low, high = high, low

guess_count = 0

while True:
    guess_count += 1
    current_guess = random.randint(low, high)
    # 询问用户猜测结果
    res = input(f"第{guess_count}次猜测,数字是{current_guess}?请回答正确/偏高/偏低:").strip()
    if res == "正确":
        print(f"猜对了!一共猜了{guess_count}次")
        break
    elif res == "偏高":
        high = current_guess - 1
    elif res == "偏低":
        low = current_guess + 1
    else:
        print("输入无效,请输入正确/偏高/偏低")
    
    # 校验区间合法性,避免用户回答矛盾
    if low > high:
        print("你的回答存在矛盾,没有符合条件的数字,请重新开始")
        break

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:36:06