生成三个不同的随机数
我这里有一些代码,但它没有按照我想要的方式工作:
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
你代码里的问题是,如果 option1
和 option2
不一样,第一次的 while
循环就不会执行,这样你就没办法检查它们有没有和 option3
相等。
37
你可以使用 random.sample
这个功能,从一个可迭代的对象中获取任意数量的独特“随机”项目,不需要使用嵌套循环。
>>> option1, option2, option3 = random.sample(range(1, 4), 3)
>>> option1, option2, option3
(3, 1, 2)