Python的random模块基于Mersenne Twister算法提供多种随机函数,适用于模拟、游戏等场景但不用于加密。1. random()生成[0.0,1.0)浮点数;2. uniform(a,b)返回a到b间浮点数;3. randint(a,b)返回a到b间整数(含端点);4. randrange(start,stop,step)从指定range中选整数;5. choice(seq)从序列中选一个元素;6. choices(population,weights,k)带权重可重复选取k个;7. sample(population,k)无重复抽取k个;8. shuffle(x)打乱列表顺序。使用seed()可复现实验结果,常用于测试。

Python 的 random 模块提供了多种生成随机数的函数,适用于不同场景下的随机操作。这些函数基于 Mersenne Twister 算法,是一种伪随机数生成器(PRNG),适合模拟、游戏、抽样等用途,但不适用于加密场景(应使用 secrets 模块)。
常用随机函数说明
1. random.random()
返回一个在 [0.0, 1.0) 范围内的随机浮点数。
示例:
import randomprint(random.random()) # 如:0.374540
2. random.uniform(a, b)
立即学习“Python免费学习笔记(深入)”;
返回 a 和 b 之间的随机浮点数(包含 a 和 b,取决于浮点精度)。
示例:
print(random.uniform(1.5, 4.5)) # 如:3.2847
3. random.randint(a, b)
返回 a 和 b 之间的随机整数(包含 a 和 b)。
示例:
print(random.randint(1, 10)) # 如:7
4. random.randrange(start, stop[, step])
从 range(start, stop, step) 中随机选择一个整数,常用于步长控制。
示例:
print(random.randrange(0, 10, 2)) # 从 [0,2,4,6,8] 中选
5. random.choice(seq)
从非空序列中随机选择一个元素。
示例:
fruits = ['apple', 'banana', 'cherry']print(random.choice(fruits)) # 如:'banana'
6. random.choices(population, weights=None, k=1)
返回长度为 k 的列表,允许重复选择,可设置权重。
示例:
print(random.choices(['a','b','c'], k=3)) # 如:['a','c','a']
7. random.sample(population, k)
从序列中无重复地随机选取 k 个元素,返回列表。
示例:
numbers = list(range(10))print(random.sample(numbers, 3)) # 如:[2, 7, 1]
8. random.shuffle(x)
将列表 x 中的元素就地打乱顺序。
示例:
deck = ['A', 'B', 'C', 'D']random.shuffle(deck)print(deck) # 如:['C', 'A', 'D', 'B']
设置随机种子(可复现结果)
使用 random.seed() 可以设定初始状态,使后续随机结果可复现。
示例:
random.seed(42)print(random.random()) # 每次运行都输出相同的序列
应用场景建议
模拟实验或游戏逻辑时,用 randint 或 choice需要无重复抽样时,用 sample生成带权重的随机选择,用 choices 并传入 weights确保测试可复现时,记得调用 seed()
基本上就这些,根据实际需求选择合适的方法即可。
以上就是python random中的随机函数的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1380266.html
微信扫一扫
支付宝扫一扫