random模块用于生成伪随机数。
真正意义上的随机数(或者随机事件)是按照实验过程中表现的分布概率随机产生的,其结果是不可预测的。而计算机中的随机数是所谓的随机函数按照一定算法模拟产生的,其结果是确定的,是可预测的。所以用计算机随机函数所产生的“随机数”并不随机,是伪随机数,绝对不可以用来生成密码。
1.计算机的伪随机数是由随机种子根据一定的计算方法计算出来的数值。所以,只要计算方法一定,随机种子一定,那么产生的随机数就是固定的。
2.如果用户不设置随机种子,那么随机种子默认来自系统时钟。
1. 基本方法
random.seed(a=None, version=2)
初始化随机数生成器。如果未提供a或者a=None
,则使用系统时间为种子。如果a是一个整数,则作为新的种子。
random.getstate()
返回当前生成器的内部状态
random.setstate(state)
传入一个先前利用getstate方法获得的状态对象,使得生成器恢复到这个状态。
random.getrandbits(k)
返回一个不大于K位的Python整数(十进制),比如k=10,则结果是0~2^10之间的整数。
2. 针对整数的方法
注意:在使用后面的方法时,一定要小心区间的开闭!
random.randrange(stop)
random.randrange(start, stop[, step])
等同于后面的choice(range(start,stop,s