Python语言之Random随机数
小标 2018-06-20 来源 : 阅读 714 评论 0

摘要:Python语言产生随机数的功能在random模块中实现,实现了各种分布的伪随机数生成器,希望对大家学习Python语言有所帮助。

Python语言产生随机数的功能在random模块中实现,实现了各种分布的伪随机数生成器,希望对大家学习Python语言有所帮助。

 

该模块可以生成0到1的浮点随机数,也可以在一个序列中进行随机选择,产生的随机数可以是均匀分布,高斯分布,对数正态分布,负指数分布以及alpha,beta分布,但是呢,这些随机数不适合使用在以加密为目的的应用中

 

你也可以自己派生一个Random类的子类,自己去实现子类中的random(),seed(),getstate(),setstate()函数,一个新的产生器可以提供一个getrandbits()方法,这允许randrange()产生任意范围的随机数

 

警告:

这个模块中的随机数是伪随机数,不能应用于安全加密,如果你需要一个真正的密码安全随机数,你需要使用os.urandom()或者random模块中的SystemRandom类来实现

 

参考官方文档,random模块的常用函数如下:

 

1、random.random()

用于生成一个0到1的随机浮点数:0<= n < 1.0

 

2、random.uniform(a,b)

用于生成一个指定范围内的随机浮点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: a <= n <= b。如果 a <b,则 b <= n <= a。

 

3、random.randint(a,b)

用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机整数数n:a <= n <= b

 

4、random.choice(seq)

从序列中获取一个随机元素。参数seqe表示一个有序类型,可以是list,tuple,array,str等

 

5、random.randrange([start,] stop[, step])

从指定范围内,按指定基数递增的集合中 获取一个随机数。如:random.randrange(10,100, 2),结果相当于从[10, 12, 14, 16, ... 96, 98]序列中获取一个随机数。random.randrange(10,100, 2)在结果上与 random.choice(range(10, 100, 2) 等效。

 

6、random.shuffle(x[,random])

用于将一个列表中的元素打乱,可以用这个函数写一个洗牌的程序

 

7、random.sample(seq,k)

从指定序列中随机获取指定长度的片断,sample函数不会修改原有序列,如果k大于seq元素个数的话会报错。

 

[python] view plain copy
1. >>> random.random()                      # Random float x, 0.0 <= x < 1.0  
2. 0.37444887175646646  
3.   
4. >>> random.uniform(1, 10)                # Random float x, 1.0 <= x < 10.0  
5. 1.1800146073117523  
6.   
7. >>> random.randrange(10)                 # Integer from 0 to 9  
8. 7  
9.   
10. >>> random.randrange(0, 101, 2)          # Even integer from 0 to 100  
11. 26  
12.   
13. >>> random.choice('abcdefghij')          # Single random element  
14. 'c'  
15.   
16. >>> items = [1, 2, 3, 4, 5, 6, 7]  
17. >>> random.shuffle(items)  
18. >>> items  
19. [7, 3, 2, 5, 6, 4, 1]  
20.   
21. >>> random.sample([1, 2, 3, 4, 5],  3)   # Three samples without replacement  
22. [4, 1, 5]

本文由职坐标整理并发布,希望对同学们学习Python有所帮助,更多内容请关注职坐标编程语言Python频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程