您好,python 中的 "Random" 库有问题

Hello, I am having a problem with the "Random" library in python

您好,python 中的“随机”库有问题。所以基本上我希望它 return 一个介于 (1, 99) 之间的值,以便该部分工作,但我希望它 return 多个随机值仅通过 运行 一次代码。它只为每个 运行 给我 1 个随机值。这是代码:

import random
import time
 
Random = random.randint(1, 99)
while True:
    time.sleep(0.7)
    print(Random)
    

而且我还想问一下如何在 python 中为函数计时。如果我只希望它 运行 持续特定的时间,我该怎么做?

谢谢。

import random
import time

while True:
    Random = random.randint(1, 99)
    print(Random)
    time.sleep(0.7)

如果你想让它运行尽可能快地持续 0.7 秒:

import random
import time

alarm = time.time() + 0.7
while time.time() < alarm:
    Random = random.randint(1, 99)
    print(Random)

请注意,这是一个紧密的 CPU 循环,因此不是一个好主意,但它向您展示了概念。

这是因为使用随机库的随机数在while之外只声明了一次

正如您上面的回答,您可以将随机数生成放入 while 循环中。

您也可以使用 for-loop 进行检查。

from random import randint

for _ in range(10):
    random_num= randint(0, 10)
    print(random_num)

输出

1
3
4
9
4
2
7
5
1
6

如果你想在一次调用中得到一个随机整数列表,你可以使用 random 标准库中的 choicessample 以及 range 来得到什么你想要:

import random

# 10 random integers between 1-99 with replacement
print(random.choices(range(1, 100), k=10))

# 10 random integers between 1-99 without replacement
print(random.sample(range(1, 100), k=10))
[45, 52, 36, 43, 46, 28, 43, 37, 37, 17]
[63, 10, 40, 38, 86, 87, 65, 37, 15, 49]

你可以试试这个:

import random 
n = 20 
random_num_list = random.sample(list(range(1,99)), n) 

试试这个:

import random
for i in range(3):
    print(random.randint(1,99)
    # Imports
    import random
    import time

    # Working
    while True:
        time.sleep(0.7)
        Random = random.randint(1, 99)
        print(Random)