random --- 生成随机数¶
此模块实现了一个伪随机数生成器(PRNG)。该 PRNG 是一个 32 位的 Yasmarang 风格 LCG;首次导入时,它从 os.urandom() 所使用的同一硬件源中获取一个 32 位种子,之后的每个数都是该种子的确定性函数。
警告
其输出不具备加密安全性——该算法可以从一小段输出序列中预测出来,并且初始种子只携带 32 位的熵。对于密钥材料、会话令牌、密码盐值或任何其他安全敏感的用途,请改为调用 os.urandom()。
备注
区间使用以下记号:
() 是开区间括号,不包含其端点。例如,(0, 1) 表示大于 0 且小于 1。用集合记号表示:(0, 1) = {x | 0 < x < 1}。
[] 是闭区间括号,包含其所有界点。例如,[0, 1] 表示大于或等于 0 且小于或等于 1。用集合记号表示:[0, 1] = {x | 0 <= x <= 1}。
整数相关函数¶
浮点数相关函数¶
其他函数¶
- random.seed(n: int | None = None, /) None¶
用种子 n 初始化随机数生成器模块,n 应为整数。当未传入参数(或传入
None)时,PRNG 会从os.urandom()所使用的同一个端口专用源重新设定种子。
- random.choice(sequence: Any) Any¶
从 sequence(元组、列表或任何支持下标操作的对象)中随机选择并返回一项。