Python随机数random模块使用指南


Posted in Python onSeptember 09, 2016

random 模块是Python自带的模块,除了生成最简单的随机数以外,还有很多功能。

random.random()

用来生成一个0~1之间的随机浮点数,范围[0,10

>>> import random
>>> random.random()
0.5038461831828231

random.uniform(a,b)

返回a,b之间的随机浮点数,范围[a,b]或[a,b),取决于四舍五入,a不一定要比b小。

>>> random.uniform(50,100)
76.81733455677832
>>> random.uniform(100,50)
52.98730193316595

random.randint(a,b)

返回a,b之间的整数,范围[a,b],注意:传入参数必须是整数,a一定要比b小

>>> random.randint(50,100)
54
>>> random.randint(100,50)
 
Traceback (most recent call last):
 File "<pyshell#6>", line 1, in <module>
  random.randint(100,50)
 File "C:\Python27\lib\random.py", line 242, in randint
  return self.randrange(a, b+1)
 File "C:\Python27\lib\random.py", line 218, in randrange
  raise ValueError, "empty range for randrange() (%d,%d, %d)" % (istart, istop, width)
ValueError: empty range for randrange() (100,51, -49)
>>> random.randint(50.5,100.6)
 
Traceback (most recent call last):
 File "<pyshell#7>", line 1, in <module>
  random.randint(50.5,100.6)
 File "C:\Python27\lib\random.py", line 242, in randint
  return self.randrange(a, b+1)
 File "C:\Python27\lib\random.py", line 187, in randrange
  raise ValueError, "non-integer arg 1 for randrange()"
ValueError: non-integer arg 1 for randrange()

random.randrang([start], stop[, step])

返回有个区间内的整数,可以设置step。只能传入整数,random.randrange(10, 100, 2),结果相当于从[10, 12, 14, 16, … 96, 98]序列中获取一个随机数。

>>> random.randrange(100)
58
>>> random.randrange(10,100,2)
54

random.choice(sequence)

从序列中随机获取一个元素,list, tuple, 字符串都属于sequence。这里的sequence 需要是有序类型。random.randrange(10,100,2)在结果上与 random.choice(range(10,100,2) 等效。

>>> random.choice(("stone","scissors","paper"))
'stone'
>>> random.choice(["stone","scissors","paper"])
'scissors'
>>> random.choice("Random")
'm'

random.shuffle(x[,random])

用于将列表中的元素打乱,俗称为洗牌。会修改原有序列。

>>> poker = ["A","2","3","4","5","6","7","8","9","10","J","Q","K"]
>>> random.shuffle(poker)
>>> poker
['4', '10', '8', '3', 'J', '6', '2', '7', '9', 'Q', '5', 'K', 'A']

random.sample(sequence,k)

从指定序列中随机获取k个元素作为一个片段返回,sample函数不会修改原有序列。

>>> poker = ["A","2","3","4","5","6","7","8","9","10","J","Q","K"]
>>> random.sample(poker,5)
['4', '3', '10', '2', 'Q']

上述几个方式是Python常用的一些方法,但是关于随机数还有很多的故事。下回分解~

Python 相关文章推荐
Python采用Django制作简易的知乎日报API
Aug 03 Python
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
Jul 06 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
Mar 15 Python
python实现简单登陆流程的方法
Apr 22 Python
Python实现合并excel表格的方法分析
Apr 13 Python
对pyqt5多线程正确的开启姿势详解
Jun 14 Python
利用pandas合并多个excel的方法示例
Oct 10 Python
用Python画小女孩放风筝的示例
Nov 23 Python
Python 利用OpenCV给照片换底色的示例代码
Aug 03 Python
Python在线和离线安装第三方库的方法
Oct 31 Python
Django Admin后台模型列表页面如何添加自定义操作按钮
Nov 11 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 Python
利用ctypes提高Python的执行速度
Sep 09 #Python
python实现批量监控网站
Sep 09 #Python
利用python批量检查网站的可用性
Sep 09 #Python
Python如何判断数独是否合法
Sep 08 #Python
python框架django基础指南
Sep 08 #Python
python中星号变量的几种特殊用法
Sep 07 #Python
Python 实现 贪吃蛇大作战 代码分享
Sep 07 #Python
You might like
解析dedeCMS验证码的实现代码
2013/06/07 PHP
php生成与读取excel文件
2016/10/14 PHP
js中prototype用法详细介绍
2013/11/14 Javascript
javascript替换已有元素replaceChild()使用介绍
2014/04/03 Javascript
三种取消选中单选框radio的方法
2014/09/09 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
jQuery实现的导航下拉菜单效果示例
2016/09/05 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
js获取浏览器的各种属性
2017/04/27 Javascript
angular实现图片懒加载实例代码
2017/06/08 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
微信小程序实现人脸识别
2018/05/25 Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
2018/09/17 Javascript
浅谈Vue数据响应思路之数组
2018/11/06 Javascript
详解webpack引入第三方库的方式以及注意事项
2019/01/15 Javascript
python实现定时播放mp3
2015/03/29 Python
python数据结构之链表的实例讲解
2017/07/25 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
python分数表示方式和写法
2019/06/26 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
2020/03/24 Python
python怎么删除缓存文件
2020/07/19 Python
html5指南-5.使用web storage存储键值对的数据
2013/01/07 HTML / CSS
STUBHUB日本:购买和出售全球活动门票
2018/07/01 全球购物
Street One瑞士:德国现代时装公司
2019/10/09 全球购物
英文自我鉴定
2013/12/10 职场文书
中式面点餐厅创业计划书
2014/01/29 职场文书
小学生读书感言
2014/02/12 职场文书
幼儿园教师工作感言
2014/02/15 职场文书
网络编辑求职信
2014/04/30 职场文书
优质服务演讲稿
2014/05/14 职场文书
篮球兴趣小组活动总结
2014/07/07 职场文书
班主任与学生安全责任书
2014/07/25 职场文书
2014年学校后勤工作总结
2014/12/06 职场文书
Nginx下SSL证书安装部署步骤介绍
2021/12/06 Servers
Python调用腾讯API实现人脸身份证比对功能
2022/04/04 Python