如何在Python 3中生成0到无穷大的N个随机数

Bil*_*ole 0 python random numbers python-3.x

如何在python 3中生成n个随机数?n是待确定的变量.最好是自然数(整数> 0),我发现的所有答案都取一个范围内的随机整数,但是我不想从一个范围生成数字.(除非范围是0到无穷大)

Kas*_*mvd 9

计算机世界中没有无限.您可以使用sys.maxsize(sys.maxint在python 2中)获取您的机器支持的最大正整数并将其传递给random.randint函数:

>>> import sys
>>> sys.maxsize
9223372036854775807
>>> random.randint(0,sys.maxsize)
7512061515276834201
Run Code Online (Sandbox Code Playgroud)

并且为了生成多个随机数,您可以使用如下列表理解:

>>> N = 10
>>> [random.randint(0,sys.maxsize) for _ in range(N)]
[3275729488497352533, 7487884953907275260, 36555221619119354, 1813061054215861082, 619640952660975257, 9041692448390670491, 5863449945569266108, 8061742194513906273, 1435436865777681895, 8761466112930659544]
Run Code Online (Sandbox Code Playgroud)

有关的差异的详细信息sys.maxint,并sys.maxsize蟒蛇2.x和3.x:

删除了sys.maxint常量,因为不再对整数值进行限制.但是,sys.maxsize可以用作大于任何实际列表或字符串索引的整数.它符合实现的"自然"整数大小,并且通常与同一平台上以前版本中的sys.maxint相同(假设具有相同的构建选项).

  • `sys.maxsize` 是“可以用作大于任何实际列表或字符串索引的整数”,但它不是 Python 3 可以表示的最大整数(仅受实现可用内存的限制)。 (2认同)