在Python中,random
模块提供了多种控制随机数取值范围的方法,包括生成0到1之间的浮点数、指定区间的整数或浮点数,以及从序列中随机选择元素。以下是核心功能的详细解析:
-
基础浮点数范围
random.random()
生成之间的浮点数,适用于概率模拟或标准化数据场景。例如,0.617
或0.898
(结果不固定)。 -
自定义浮点数范围
random.uniform(a, b)
支持任意浮点数区间,如random.uniform(1.5, 3.5)
可能返回2.689
。参数顺序不影响范围,若,结果仍为。 -
整数范围控制
random.randint(a, b)
生成的整数(含两端),如random.randint(12, 20)
可能返回15
。random.randrange(start, stop, step)
按步长生成,如random.randrange(10, 100, 2)
从[10, 12,…, 98]
中选取。
-
序列随机操作
random.choice(seq)
从列表、字符串等序列中随机选取单个元素,如random.choice(["A", "B", "C"])
返回"B"
。random.sample(seq, k)
抽取个不重复元素,如random.sample(range(10), 4)
生成[6, 2, 9, 0]
。random.shuffle(seq)
原地打乱序列顺序,如列表[1, 2, 3]
可能变为[3, 1, 2]
。
-
高级功能与种子控制
通过random.seed(n)
固定随机种子,确保结果可复现。例如,设置seed(42)
后,random.randint(1, 100)
首次必返回82
。
提示:根据需求选择合适的方法——均匀分布用uniform
,整数抽样用randint
,避免重复时用sample
。注意浮点数的开闭区间差异,并优先使用标准库函数保证性能。