【发布时间】:2022-09-30 21:02:32
【问题描述】:
我正在尝试生成一个随机数。
import random
print(random.randint(1,10))
我是否能够生成 1-10 之间的数字但不会生成 x?
例如 x = 3
标签: python
我正在尝试生成一个随机数。
import random
print(random.randint(1,10))
我是否能够生成 1-10 之间的数字但不会生成 x?
例如 x = 3
标签: python
三种方法:
循环直到它有效:
while (val := random.randint(1, 10)) == 3:
pass
print(val)
从较小的范围生成,然后递增等于或高于排除值的所有数字:
val = random.randint(1, 9)
if val >= 3:
val += 1
print(val)
创建一个您允许的数字序列,并使用random.choice(如果您多次这样做,这可能是最好的解决方案;创建一次序列,然后重复使用它):
# Done once (must convert back to sequence from set, choice only works with sequences)
values = tuple(set(range(1, 11)) - {3})
# Done as often as you like
print(random.choice(values))
【讨论】: