文章目录
6.random
模块random
包含生成伪随机数的函数,有助于编写模拟程序或生成随机输出的程序。请注意,虽然这些函数生成的数字好像是完全随机的,但它们背后的系统是可预测的。如果你要求真正的随机(如用于加密或实现与安全相关的功能),应考虑使用模块os中的函数urandom
。模块random
中的SystemRandom类
基于的功能与urandom
类似,可提供接近于真正随机的数据。
函数 | 描 述 |
---|---|
random() | 返回一个0~1(含)的随机实数 |
getrandbits(n) | 以长整数方式返回n个随机的二进制位 |
uniform(a, b) | 返回一个a~b(含)的随机实数 |
randrange([start],stop,[step]) | 从range(start,stop,step)中随机地选择一个数 |
choice(seq) | 从序列seq中随机地选择一个元素 |
shuffle(seq[, random]) | 就地打乱序列seq |
sample(seq, n) | 从序列seq中随机地选择n个值不同的元素 |
函数random.random()
是最基本的随机函数之一,它返回一个0~1(含)的伪随机数。除非这正是你需要的,否则可能应使用其他提供了额外功能的函数。
>>> random.random() #0.22881565982232777
函数random.getrandbits(n)
以一个整数的方式返回n个的二进制位。
>>> random.getrandbits(3) #4
>>> random.getrandbits(3) #1
向函数random.uniform(a, b)
提供了两个数字参数a和b时,它返回一个a~b(含)的随机(均匀分布的)实数。例如,如果你需要一个随机角度,可使用uniform(0, 360)
。
>>> random.uniform(1, 6)
#1.1021414309439372
函数random.randrange([start], stop, [step])
是生成随机整数的标准函数。为指定这个随机整数所在的范围,你可像调用range那样给这个函数提供参数。
>>> random.randrange(1, 11) #生成一个1~10(含)的随机整数
>>> random.randrange(10) + 1 #生成一个1~10(含)的随机整数
>>> random.randrange(1,20, 2) #生成一个小于20的随机正奇数