本文章全面总结了Python中random模块包含的22个常用函数及其功能,帮助读者轻松掌握随机数生成和数据处理技巧。
Python的`random`模块是生成伪随机数的关键工具,提供了多种函数来满足不同的需求。以下是该模块中的22种主要功能的详细解释:
1. `random.random()`:此函数返回一个介于0(包括)到1(不包括)之间的浮点数。例如,可能的结果为`0.7186311708109537`。
2. `random.randint(a, b)`:该函数生成并返回a和b之间的一个随机整数,包含端点值。比如调用`random.randint(1, 10)`可能会得到结果为`7`的输出。
3. `random.randrange(stop)`、`random.randrange(start, stop[, step])`: 这两个版本的函数用于生成指定范围内的一个随机整数值。如果只提供了一个参数,那么这个值就是上限(不包含)。例如:调用`random.randrange(10)`可能会得到结果为`3`;而使用可选参数时,如`random.randrange(1, 10, 2)`, 可能会输出一个奇数比如7。
4. `random.uniform(a, b)`:此函数生成并返回a和b之间的一个随机浮点数值。包括端值。例如调用`random.uniform(1.5, 2.5)`可能得到的结果为`2.143`。
5. `random.choice(seq)`: 这个函数从给定的非空序列(如列表、元组或字符串)中随机选取一个元素返回,比如调用`random.choice([1, 2, 3, 4, 5])`可能会输出结果为`3`。
6. `random.choices(population, weights=None, *, cum_weights=None, k=1)`:此函数从给定的集合中按照指定权重随机选择k个元素,返回一个列表形式的结果。例如调用`random.choices([1, 2, 3, 4, 5], k=5)`可能输出结果为`[2, 5, 2, 1, 3]`。
7. `random.shuffle(x)`: 此函数用于将一个列表的元素随机排列。例如调用`random.shuffle([1, 2, 3, 4, 5])`会改变原列表顺序,但不会返回任何值。
8. `random.sample(population, k)`:此函数从给定集合中选取k个不重复的元素并以一个新列表的形式返回。例如调用`random.sample([1, 2, 3, 4, 5], 3)`可能输出结果为`[2, 4, 5]`。
9. `random.seed(a=None, version=2)`: 设置随机数生成器的种子值,如果未提供参数,则使用当前时间。这有助于确保每次运行相同的代码可以得到一致的结果序列。
10. `random.getstate()`: 此函数返回一个元组形式的状态数据,用于保存当前随机数生成器的状态信息。
11. `random.setstate(state)`: 使用给定状态恢复随机数生成器的先前状态,使得可以在不同时间点复现相同的随机数序列。
12. `random.getrandbits(k)`:此函数返回一个具有k位(可以是负数)的随机整数值。
13-20. 下列函数用于生成特定分布类型的伪随机值:
- `expovariate(lambd=1.0)`: 产生指数分布型随机数
- `gammavariate(alpha, beta=1.0)`: 生成伽马分布的随机数值,alpha为形状参数,beta为尺度参数。
- `gauss(mu, sigma)`: 输出高斯(正态)分布类型的随机值。mu是均值而sigma表示标准差。
- `lognormvariate(mu, sigma)`:产生对数正态分布型的随机数值
- `normalvariate(mu, sigma)`:类似`gauss()`,生成正态分布的随机数。
- `paretovariate(alpha)`: 用于创建帕累托分布类型的伪随机值。alpha是形状参数。
- `triangular(left, mode, right)`: 返回三角形分布类型的一个随机数值
- `vonmisesvariate(mu, kappa)`:生成冯·米塞斯型的随机数,mu为平均角位置而kappa表示浓度参数。
- `weibullvariate(alpha, beta)`: 用于创建威布尔分布类型的伪随机值。alpha是尺度参数,beta代表形状。
这些函数在模拟、统计分析、游戏开发以及加密算法等领域具有广泛的应用价值,并且可以有效地帮助程序员实现各种形式的随机行为和