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
相关产品推荐
相关产品推荐

