猜数字游戏中,如何处理random.randrange生成0时的重新调用问题?
猜数字游戏:生成1-100范围内的指定随机倍数数字
需求
- 制作猜数字游戏,玩家需猜测1-100之间的随机数
- 目标数字是2-10之间随机生成的数
ran_num的倍数,且必须在1-100范围内 - 要求使用
random.randrange(0, 101, ran_num)生成数字,若生成0则重新生成,确保最终数字不为0
解决方案代码
import random ran_num = random.randint(2, 10) print(f"Hello! The goal of the game is to guess a multiple-of-{ran_num} number that is between 1-100.") # 生成符合要求的目标数字,确保不为0 answer = random.randrange(0, 101, ran_num) while answer == 0: answer = random.randrange(0, 101, ran_num)
代码解释
- 先通过
random.randint(2,10)确定随机倍数ran_num - 使用
random.randrange(0, 101, ran_num)生成候选数:该函数会从0开始,以ran_num为步长生成不超过100的数,存在生成0的可能(比如随机选中起始值0时) - 用
while循环持续检查生成的数字,只要是0就重新生成,直到得到1-100之间的有效倍数。相比单次if判断,循环能彻底避免极端情况下仍生成0的问题
内容的提问来源于stack exchange,提问作者not_jena
相关产品推荐
相关产品推荐

