你真的用好了Python的random模块吗?
random模块 用于生成伪随机数 源码位置: Lib/random.py(看看就好,千万别随便修改) 真正意义上的随机数(或者随机事件)在某次产生过程中是按照实验过程中表现的分布概率随机产生的,其结果是不可预测的,是不可见的。而计算机中的随机函数是按照一定算法模拟产生的,其结果是确定的,是可见的。我们可以这样认为这个可预见的结果其出现的概率是100%。所以用计算机随机函数所产生的“随机数”并不随机,是伪随机数。 计算机的伪随机数是由随机种子根据一定的计算方法计算出来的数值。所以,只要计算方法一定,随机种子一定,那么产生的随机数就是固定的。 只要用户或第三方不设置随机种子,那么在默认情况下随机种子来自系统时钟。 Python的这个库在底层使用通用的算法,经过长久的考验,可靠性没得说,但绝对不能用于密码相关的功能。 一、基本方法 random.seed(a=None, version=2) 初始化伪随机数生成器。如果未提供a或者a=None,则使用系统时间为种子。如果a是一个整数,则作为种子。 random.getstate() 返回一个当前生成器的内部状态的对象 random.setstate(state) 传入一个先前利用getstate方法获得的状态对象,使得生成器恢复到这个状态。 random.getrandbits(k) 返回一个不大于K位的Python整数(十进制)