在python中连续生成随机数,但在生成某个数字时停止

时间:2017-11-24 16:02:31

标签: python-3.x random

我想连续生成一个介于1到10之间的随机数,但如果生成数字9或10则停止。

我用它来获取随机数

import random
for x in range(1):
  random.randint(1,10)

但是,除了

之外,我不知道如何继续
if range<9 :
    print("Again")
elif:
    for x in range(1):
        random.randint(1,10)
else:
    print("End")      

1 个答案:

答案 0 :(得分:2)

您需要使用while循环。因此,虽然True(即永远循环),但首先生成random个数字。然后print无论它是什么。然后,如果此号码(rand)位于tuple(9, 10)中,即它是910,那么break (退出)while循环。

以下是上述步骤的代码:

import random
while True:
   rand = random.randint(1, 10)
   print(rand)
   if rand in (9, 10):
       break

对我来说,它给了随机 output

2
3
6
7
9

注意当它到​​达9

时它是如何停止的

如果我们只是简单地检查if rand > 8,就好像它通过了它,它必须是910,那么代码实际上可以写得更短,效率更高。这将使代码在处理器级别运行得更快,这将更快地处理。但是,需要注意的两件事是,如果您想要在达到其他数字时停止,例如说48,则无法执行此操作。而且,在这种规模下,效率并不值得担心。

尽管如此,您仍然可以使用以下内容来获得相同的结果:

import random
while True:
   rand = random.randint(1, 10)
   print(rand)
   if rand > 8:
       break