生成3个不同的随机数

use*_*159 12 python

我在这里有一些东西,但我无法按照自己喜欢的方式工作:

def nested_loops():
    import random
    option1 = random.randint(1, 3)
    option2 = random.randint(1, 3)
    option3 = random.randint(1, 3)
Run Code Online (Sandbox Code Playgroud)

上面的位产生数字但它们可能是相同的.在这下面可以解决这个问题,但它没有,但它似乎只是降低了可能性

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)
Run Code Online (Sandbox Code Playgroud)

相当明显它只是打印它们

Ale*_*ton 27

您可以使用random.sample从迭代中获取任意数量的独特"随机"项 - 不需要使用嵌套循环:

>>> option1, option2, option3 = random.sample(range(1, 4), 3)
>>> option1, option2, option3
(3, 1, 2)
Run Code Online (Sandbox Code Playgroud)