随机数(使用random.randint)返回None



我正在尝试获取一个未使用(已打印(的随机数。这是我的代码:

import random
used_numbers = []
def generate_random_number():
num = random.randint(1, 90)
if num not in used_numbers:
used_numbers.append(num)
return num
elif num in used_numbers and num == generate_random_number():
generate_random_number()
for i in range(90):
print(generate_random_number())

出于某种原因,在大约20个数字之后;无";。。

即使我试着切换到设置,我仍然会得到很多";无";s.

我期望得到的东西

未使用的1到90之间的随机数,例如:

1
90
82
53
34
65
21
86

前任。

在我得到这样的东西之前:

34
34
34
12
53
34
12
12
17
18
10
23
12

前任。

您可以使用集合来保证数字的唯一性,并使用while循环来迭代,直到您有了以前看不见的数字。

因此,您的功能变为:

import random
used_numbers = set()
def generate_random_number():
num = random.randint(1, 90)
while num in used_numbers:
num = random.randint(1, 90)
used_numbers.add(num)
return num
for i in range(90):
print(generate_random_number())

最新更新