该模块实现了各种分布的伪随机数生成器。对于整数,从范围中有统一的选择。对于序列,存在随机元素的统一选择、用于生成列表的随机排列的函数、以及用于随机抽样而无需替换的函数。几乎所有模块函数都依赖于基本函数random,它在半开放区间 [0.0,1.0)内均匀生成随机浮点数。还有一些分布方法,在实数轴上,有计算均匀、正态(高斯)、对数正态、负指数、伽马和贝塔分布的函数。
1、生成一个大于等于0.0,小于1.0的浮点数
random()
2、生成一个大于等于3,小于10的浮点数
uniform(3.0,10.0)
3、生成一个0到9之间的整数
randrange(10)
4、生成一个0到100之间的偶数整数
randrange(0, 101, 2)
5、在一个序列中随机生成一个
choice(['aa', 'bb', 'cc'])
上面是一个比较常用的方法,还有一些分布方法如下:
betavariate:Beta 分布
expovariate:指数分布
gammavariate:Gamma 分布
gauss:高斯分布
lognormvariate:对数正态分布
normalvariate:正态分布
paretovariate:帕累托分布
weibullvariate:威布尔分布
有时能够重现伪随机数生成器给出的序列是有用的。通过重新使用种子值,只要多个线程没有运行,相同的序列就可以在两次不同运行之间重现。
大多数随机模块的算法和种子函数都会在 Python 版本中发生变化,但保证两个方面不会改变:
1、如果添加了新的播种方法,则将提供向后兼容的播种机。
2、当兼容的播种机被赋予相同的种子时,生成器的random方法将继续产生相同的序列。