生成三个不同的随机数

20 投票
2 回答
34418 浏览
提问于 2025-04-17 23:25

我这里有一些代码,但它没有按照我想要的方式工作:

def nested_loops():
    import random
    option1 = random.randint(1, 3)
    option2 = random.randint(1, 3)
    option3 = random.randint(1, 3)

上面的代码会生成一些数字,但这些数字可能会重复。下面的代码应该能解决这个问题,但实际上并没有,只是似乎降低了重复的可能性:

while option1 == option2:
    option1 = random.randint(1,3)
    while option1 == option3:
        option1 = random.randint(1, 3)
        while option2 == option3:
            option2 = random.randint(1, 3)

print(option1)
print(option2)
print(option3)

很明显,这段代码只是把数字打印出来。

2 个回答

1

你代码里的问题是,如果 option1option2 不一样,第一次的 while 循环就不会执行,这样你就没办法检查它们有没有和 option3 相等。

37

你可以使用 random.sample 这个功能,从一个可迭代的对象中获取任意数量的独特“随机”项目,不需要使用嵌套循环。

>>> option1, option2, option3 = random.sample(range(1, 4), 3)
>>> option1, option2, option3
(3, 1, 2)

撰写回答