生成3个不同的随机数

时间:2014-03-22 12:58:39

标签: python

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

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 个答案:

答案 0 :(得分:21)

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

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

答案 1 :(得分:0)

您的代码中的错误是,如果option1和option2不同,则不会输入第一个while,并且您不会检查它们中的任何一个是否与option3相等。