【问题标题】:Continuously generate random number in python but stop when it generates a certain number在python中连续生成随机数,但在生成某个数字时停止
【发布时间】:2025-12-04 15:15:01
【问题描述】:

我想连续生成一个介于 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")      

【问题讨论】:

  • 您能否发布更多/完整的代码。我无法理解那些 if / else 语句。

标签: python-3.x random


【解决方案1】:

您需要使用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 &gt; 8,就好像它通过了,它必须是910。这将使代码在处理器级别运行得更快,这将更快地处理。但是,需要注意的两件事是,如果您想在达到其他数字(例如 48)时停止,这将不起作用。此外,在这种规模下,效率并不是真正值得担心的事情。

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

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

【讨论】:

    【解决方案2】:
    >>> from random import randint
    >>> while True:
    ...     n = randint(1,10)
    ...     if n in range(1,9):
    ...         print(n)
    ...     else:
    ...         break
    ...     
    6
    1
    5
    7
    

    【讨论】: