Python 中的 random 模块是一个强大的工具包,用于生成各种类型的随机数,并进行一系列基于随机性的操作。它提供了多种函数来满足不同场景下对随机性的需求,包括但不限于数值生成、序列操作和概率分布模拟等。以下是对 random 模块中一些核心功能的详细介绍:
随机数生成
? random.random():返回0.0到1.0之间(含0.0而不含1.0)的一个浮点数。
? random.uniform(a, b):在指定的范围内[a, b]内(含a和b)返回一个均匀分布的随机浮点数。
? random.randint(a, b):返回指定范围内的一个随机整数,范围包括a和b两个端点。
? random.randrange(start, stop[, step]):类似于 randint,但可以指定步长。返回从start(包含)到stop(不包含)之间以步长step递增的随机整数。
序列操作
? random.choice(seq):从非空序列 seq 中随机选择并返回一个元素。
?random.choices(population,weights=None, k=1):从给定的 population 序列中根据可选权重参数 weights 随机抽取 k 个元素。
? random.shuffle(x):原地打乱列表 x 的顺序,改变其内容。
?random.sample(population, k):从 population 序列中不放回地随机抽取 k 个独立且不重复的元素,返回一个新的列表。
其他随机化函数
? random.seed(a=None, version=2):设置或获取当前随机数生成器的种子值。如果不提供种子值,则会使用系统时间作为随机种子。
? random.gauss(mu, sigma):根据高斯(正态)分布生成随机数,其中 mu 是平均值,sigma 是标准差。
? random.normalvariate(mu, sigma):与 gauss 类似,根据指定的平均值和标准差生成服从正态分布的随机数。
除此之外,random 模块还支持其他更复杂的分布函数,如指数分布、伽马分布、贝塔分布等。由于这些函数都是伪随机数生成器的结果,它们在统计上是不可预测的,但在同一种子下可以产生相同的随机序列,这对于调试和重现结果非常有用。
import random
# 示例用法:
print(random.random()) # 输出 [0.0, 1.0) 范围内的浮点数
print(random.randint(1, 10)) # 输出 [1, 10] 范围内的整数
print(random.choice(['apple', 'banana', 'cherry'])) # 随机选择一个水果名
要深入了解 random 模块的所有功能,请查阅 Python 官方文档。