ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Python random模块全解析:从基础到高级应用

Python random模块全解析:从基础到高级应用 1. random 模块概述Python 的random模块是标准库中用于生成伪随机数的核心模块提供了多种随机数生成函数广泛应用于模拟、游戏、抽样、加密辅助等场景。需要注意的是random模块生成的是伪随机数基于梅森旋转算法Mersenne Twister并非真正的随机数因此不适合用于安全敏感的场景如密码生成这类需求应使用secrets模块。2. 基础随机数生成以下是最常用的几个基础函数random()返回[0.0, 1.0)区间内的随机浮点数。uniform(a, b)返回[a, b]区间内的随机浮点数。randint(a, b)返回[a, b]区间内的随机整数包含两端。randrange(start, stop, step)返回指定范围内的随机整数不包含stop。import random 随机浮点数 print(random.random()) # 0.0 到 1.0 之间 print(random.uniform(1, 10)) # 1.0 到 10.0 之间 随机整数 print(random.randint(1, 100)) # 1 到 100 之间含两端 print(random.randrange(0, 100, 5)) # 0, 5, 10, ..., 95 中随机一个3. 序列相关操作random 模块提供了对列表、元组等序列的随机操作函数choice(seq)从序列中随机返回一个元素。choices(seq, weights, k)按权重从序列中随机返回 k 个元素可重复。sample(seq, k)从序列中随机返回 k 个不重复的元素。shuffle(seq)原地打乱序列顺序。import random fruits [apple, banana, cherry, durian] 随机选一个 print(random.choice(fruits)) 按权重随机选 3 个可重复 print(random.choices(fruits, weights[1, 2, 3, 4], k3)) 随机选 2 个不重复的 print(random.sample(fruits, 2)) 原地打乱 random.shuffle(fruits) print(fruits)4. 随机种子与复现通过seed()函数可以设置随机数种子使得后续生成的随机序列可复现。这在调试、测试和需要结果一致的场景中非常有用。import random random.seed(42) print(random.random()) # 0.6394267984578837 random.seed(42) # 重置种子 print(random.random()) # 再次得到相同结果 0.63942679845788375. 其他实用函数getrandbits(k)生成 k 位随机二进制整数。gauss(mu, sigma)生成符合高斯分布正态分布的随机浮点数。expovariate(lambd)生成符合指数分布的随机浮点数。SystemRandom基于操作系统提供的随机源适合对随机性要求较高的场景。import random 生成 8 位随机整数 print(random.getrandbits(8)) 高斯分布均值 0标准差 1 print(random.gauss(0, 1)) 指数分布 print(random.expovariate(1.5)) 使用系统随机源 sr random.SystemRandom() print(sr.randint(1, 100))6. 总结random 模块功能丰富覆盖了从基础随机数、序列操作到概率分布等多个层面。日常开发中random()、randint()、choice()、shuffle()是最常用的函数需要可复现结果时使用seed()涉及安全场景时则应改用secrets模块。掌握这些函数可以高效地完成绝大多数随机化需求。
返回列表