繁体   English   中英

如何生成特定数量的随机数?

[英]How do I generate a specific amount of random numbers?

我必须向用户询问一个数字,然后使用 while 循环生成与用户指定的随机数完全相同的随机数。

import random

x = int(input("Write a number: "))
y = random.randint(0, 10)

while x != 0:
    print(y)
    y = random.randint(0, 10)

对您的代码进行少量修改。 你没有减少x

import random

x = int(input("Write a number: "))

while x != 0:
    y = random.randint(0, 10)
    print(y)
    x-=1

您的while循环将永远旋转,因为您从不递减x 您可以通过将其添加到循环主体来解决此问题:

x -= 1

如果您不希望它在用户输入负数时永远旋转(因为它会永远减少而不会达到 0),您可以将您的while更改为:

while x > 0:

执行此类循环的更简单/标准/惯用的方法是使用for... in range

for _ in range(x):
    print(random.randint(0, 10))

您可以将random.choices用于 select 范围内的 10 个值。

x = int(input("Write a number: "))
values = list(random.choices(range(11), k=x))

对于更大的范围,您可能宁愿重复调用random.randint

values = [random.randint(0,10) for _ in range(x)]

我想指出,这里的for循环比while循环要好得多,但 Sam Stafford 打败了我。 列表理解解决方案也很好。

我知道你的代码只是一个例子,但那些变量名真的很差,要小心。 无论如何,这里有一个numpy解决方案,它总有一天会派上用场!

import numpy as np

num_to_gen = int(input("Choose how many random numbers to generate: "))

rand_nums = np.random.randint(low=0, high=11, size=num_to_gen).tolist()

print(rand_nums)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM