Python 提供了 random
模块,可以生成随机数。
这些是伪随机数,因为生成的数字序列取决于种子。
如果种子值相同,则序列也将相同。例如,如果您使用 2 作为种子值,您将始终看到以下序列。
import random
random.seed(2)
print(random.random())
print(random.random())
print(random.random())
输出将始终遵循此序列
0.9560342718892494 0.9478274870593494 0.05655136772680869
没那么随机,是吧? 由于此生成器是完全确定性的,因此不得用于加密目的。
以下是 random 模块中定义的所有函数列表及其简要说明。
函数 | 描述 |
---|---|
seed(a=None, version=2) | 初始化随机数生成器 |
getstate() | 返回一个捕获生成器当前内部状态的对象 |
setstate(state) | 恢复生成器的内部状态 |
getrandbits(k) | 返回一个包含 k 个随机位的 Python 整数 |
randrange(start, stop[, step]) | 从给定范围返回一个随机整数 |
randint(a, b) | 返回一个介于 a 和 b 之间(包括 a 和 b)的随机整数 |
choice(seq) | 从非空序列中返回一个随机元素 |
shuffle(seq) | 打乱序列 |
sample(population, k) | 从 population 序列中返回一个长度为 k 的唯一元素列表 |
random() | 返回 [0.0, 1.0) 范围内的下一个随机浮点数 |
uniform(a, b) | 返回一个介于 a 和 b 之间(包括 a 和 b)的随机浮点数 |
triangular(low, high, mode) | 返回一个介于 low 和 high 之间,指定模式在这些边界之间的随机浮点数 |
betavariate(alpha, beta) | Beta 分布 |
expovariate(lambd) | 指数分布 |
gammavariate(alpha, beta) | Gamma 分布 |
gauss(mu, sigma) | 高斯分布 |
lognormvariate(mu, sigma) | 对数正态分布 |
normalvariate(mu, sigma) | 正态分布 |
vonmisesvariate(mu, kappa) | Vonmises 分布 |
paretovariate(alpha) | Pareto 分布 |
weibullvariate(alpha, beta) | Weibull 分布 |
访问此页面以了解更多关于如何在 Python 中生成伪随机数。