跳到主要内容

Python Random 模块

Python 提供了 random 模块,可以生成随机数。

这些是伪随机数,因为生成的数字序列取决于种子。

如果种子值相同,序列将是相同的。例如,如果你使用 2 作为种子值,你将始终看到以下序列。

import random
random.seed(2)

print(random.random())
print(random.random())
print(random.random())

输出将始终遵循序列:

0.9560342718892494
0.9478274870593494
0.05655136772680869

不那么随机,是吗? 由于这个生成器完全确定性,它不应该用于加密目的。

这里是 random 模块中定义的所有函数的列表,以及它们的简要说明。

Python Random 模块中的函数列表

函数描述
seed(a=None, version=2)初始化随机数生成器
getstate()返回捕获生成器当前内部状态的对象
setstate(state)恢复生成器的内部状态
getrandbits(k)返回带有 k 个随机位的 Python 整数
randrange(start, stop[, step])返回来自范围的随机整数
randint(a, b)返回 a 和 b 之间(含两端)的随机整数
choice(seq)从非空序列返回一个随机元素
shuffle(seq)洗牌序列
sample(population, k)从 population 序列返回一个长度为 k 的独特元素列表
random()返回范围 [0.0, 1.0) 内的下一个随机浮点数
uniform(a, b)返回 a 和 b 之间(含两端)的随机浮点数
triangular(low, high, mode)返回 low 和 high 之间的随机浮点数,具有指定模式在这些边界之间
betavariate(alpha, beta)Beta 分布
expovariate(lambd)指数分布
gammavariate(alpha, beta)伽玛分布
gauss(mu, sigma)高斯分布
lognormvariate(mu, sigma)对数正态分布
normalvariate(mu, sigma)正态分布
vonmisesvariate(mu, kappa)Vonmises 分布
paretovariate(alpha)Pareto 分布
weibullvariate(alpha, beta)Weibull 分布

访问此页面以了解更多关于 如何在 Python 中生成伪随机数