【问题标题】:How to add exception to random.randint in Python?如何在 Python 中向 random.randint 添加异常?
【发布时间】:2017-02-08 07:36:14
【问题描述】:

所以我有一个变量可以创建 0 到 10 之间的随机数,但是,我不希望创建的随机数为 5。如何在 Python 中向 random.randint 添加异常?我在下面没有这样做:

number = random.randint(0, 10) !=5

这只是根据随机数是否等于 5 来返回 True 或 False...我该如何解决这个问题?

【问题讨论】:

  • 为什么我收到了反对票?
  • “添加例外”是什么意思?是否要更改 random.randint 引发异常的方式?

标签: python random


【解决方案1】:

你可以的

number = random.randint(0,10)
while number == 5:
   number = random.randint(0,10)

【讨论】:

    【解决方案2】:

    怎么样

    random.choice([x for x in range(11) if x != 5])
    

    单线

    【讨论】:

      【解决方案3】:

      如果你真的想引发错误,那么你可以使用assert

      number = random.randint(0, 10)
      assert number != 5
      

      raise 如果满足您的条件,则会出错。

      number = random.randint(0, 10)
      if number == 5:
          raise ValueError # or another Exception of choice
      

      或者如果你想继续尝试直到你得到一个不是 5 的随机数,那么

      while True:
          number = random.randint(0, 10)
          if number != 5:
              break
      

      【讨论】:

      • 我不认为他在谈论 Python 中的异常。
      • @TimPietzcker 因此我给了这两个选项。
      【解决方案4】:

      != 实际上是一个返回 true 或 false 的运算符 试试这个:

      import random
      l=[i for i in range(1,11)]
      l.remove(5)
      print random.choice(l)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-02-11
        • 2014-06-10
        • 1970-01-01
        • 2011-02-18
        • 1970-01-01
        • 2011-08-29
        • 2020-02-07
        相关资源
        最近更新 更多