【问题标题】:Random integer with random.randint without certain number带有 random.randint 的随机整数,没有特定数字
【发布时间】:2022-09-30 21:02:32
【问题描述】:

我正在尝试生成一个随机数。

import random
print(random.randint(1,10))

我是否能够生成 1-10 之间的数字但不会生成 x?

例如 x = 3

    标签: python


    【解决方案1】:

    三种方法:

    1. 循环直到它有效:

      while (val := random.randint(1, 10)) == 3:
          pass
      print(val)
      
    2. 从较小的范围生成,然后递增等于或高于排除值的所有数字:

      val = random.randint(1, 9)
      if val >= 3:
          val += 1
      print(val)
      
    3. 创建一个您允许的数字序列,并使用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))
      

    【讨论】:

      猜你喜欢
      • 2014-11-16
      • 1970-01-01
      • 2014-07-29
      • 2021-05-09
      • 1970-01-01
      • 1970-01-01
      • 2018-01-20
      • 1970-01-01
      • 2014-05-15
      相关资源
      最近更新 更多