有没有办法说“如果什么==什么”? (蟒蛇)

时间:2019-11-26 08:53:57

标签: python random while-loop

示例代码:

import random

x = random.randint(1, 101)
y = random.randint(1, 101)
z = random.randint(1, 101)

print(x, y, z)

现在,有一种更简单的说法

while x == y or x == z or y == z:
    x = random.randint(1, 101)
    y = random.randint(1, 101)
    z = random.randint(1, 101)

因为您拥有的变量越多,while语句所花费的时间就越长,并且如果您忘记了某些内容,它就会变得更加丑陋和令人沮丧。

类似的东西:如果任何变量等于其他任何变量:重新滚动。

谢谢!

3 个答案:

答案 0 :(得分:3)

如果您有三个变量,则可以使用来检查是否等于

len({x,y,z}) < 3

如果列表values中有任意数量的变量,则可以使用以下命令检查是否重复了任何值:

len(set(values)) < len(values)

答案 1 :(得分:3)

在这种情况下,您实际上需要的是random.sample()

x, y, z = random.sample(range(1, 101), 3)

这样,您将始终获得唯一的值,而无需重新滚动。

答案 2 :(得分:0)

您可以创建一个set以获取唯一值,并检查set的长度是否小于输入元素的数量。

例如

while len({x, y, z}) < 3:
    x = ...
    y = ...
    z = ...