Python生成随机数主要靠random模块:random.random()生成[0.0,1.0)浮点数;randint(a,b)返回[a,b]整数,randrange(start,stop,step)返回[start,stop)步进整数;choice选一个元素,choices(k=n)可重复选n个,sample实现不重复抽取;shuffle就地打乱列表,seed(n)设置种子确保结果可复现。

Python 生成随机数主要靠 random 模块,它提供多种常用方法,满足不同场景需求。
基础随机浮点数:random.random()
生成一个 [0.0, 1.0) 区间内的随机小数(左闭右开)。
- 适合做概率模拟、归一化随机权重等
- 不指定种子时每次运行结果都不同
指定范围的整数:random.randint() 和 random.randrange()
random.randint(a, b) 返回 [a, b] 区间内(含两端)的随机整数。
random.randrange(start, stop[, step]) 类似 range(),返回 [start, stop) 内按 step 步进的随机整数。
- 掷骰子:random.randint(1, 6)
- 随机选列表索引:random.randrange(len(my_list))
- 注意:randint 的 b 是包含的,而 randrange 的 stop 是不包含的
从序列中随机选取:random.choice() 和 random.choices()
random.choice(seq) 从非空序列中随机取一个元素。
random.choices(seq, k=n) 可重复地随机选取 n 个元素(有放回抽样)。
- 选幸运用户:random.choice(['Alice', 'Bob', 'Charlie'])
- 生成 5 位验证码(数字+字母):random.choices('0123456789abcdef', k=5)
- 若需不重复抽取,用 random.sample(seq, k)
打乱顺序与固定随机性:random.shuffle() 和 random.seed()
random.shuffle(list) 就地打乱列表顺序(原列表被修改)。
random.seed(n) 设置随机种子,让后续随机结果可复现。
- 洗牌游戏:random.shuffle(deck)
- 调试或测试时加 seed(42),保证每次运行结果一致
- seed() 不传参数时默认用系统时间,所以通常不设就不可复现











