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 Socket编程入门教程
Jul 11 Python
Python中使用 Selenium 实现网页截图实例
Jul 18 Python
Python中类型关系和继承关系实例详解
May 25 Python
基于Python在MacOS上安装robotframework-ride
Dec 28 Python
浅谈Python中eval的强大与危害
Mar 13 Python
python使用 zip 同时迭代多个序列示例
Jul 06 Python
python 字符串追加实例
Jul 20 Python
python tkinter实现屏保程序
Jul 30 Python
Pytorch 卷积中的 Input Shape用法
Jun 29 Python
python openCV实现摄像头获取人脸图片
Aug 20 Python
python和C++共享内存传输图像的示例
Oct 27 Python
详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程
Nov 02 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
WML,Apache,和 PHP 的介绍
2006/10/09 PHP
在任意字符集下正常显示网页的方法二(续)
2007/04/01 PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
2014/08/25 PHP
php实现的click captcha点击验证码类实例
2014/09/23 PHP
php 如何设置一个严格控制过期时间的session
2017/05/05 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
JavaScript 解析读取XML文档 实例代码
2009/07/07 Javascript
JavaScript中的私有/静态属性介绍
2012/07/26 Javascript
关于div自适应高度/左右高度自适应一致的js代码
2013/03/22 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
javascript模拟map输出与去除重复项的方法
2015/02/09 Javascript
jQuery基于图层模仿五星星评价功能的方法
2015/05/07 Javascript
Javascript中的getUTCHours()方法使用详解
2015/06/10 Javascript
对JavaScript客户端应用编程的一些建议
2015/06/24 Javascript
jQuery焦点图轮播特效代码分享(3款)
2015/09/05 Javascript
jquery zTree异步加载简单实例讲解
2016/02/25 Javascript
微信小程序 http请求详细介绍
2016/10/09 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
基于Vue实例对象的数据选项
2017/08/09 Javascript
详解.vue文件解析的实现
2018/06/11 Javascript
javascript使用链接跨域下载图片
2019/11/01 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
2019/11/25 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
[39:02]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs VGJ.T
2018/04/01 DOTA
Pycharm 设置自定义背景颜色的图文教程
2018/05/23 Python
python实现动态数组的示例代码
2019/07/15 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
基于Python3.7.1无法导入Numpy的解决方式
2020/03/09 Python
selenium+python配置chrome浏览器的选项的实现
2020/03/18 Python
python实现udp传输图片功能
2020/03/20 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
介绍一下Python中webbrowser的用法
2013/05/07 面试题
2014年房地产个人工作总结
2014/12/20 职场文书
2019年XX公司的晨会制度及流程!
2019/07/23 职场文书
Android基于Fresco实现圆角和圆形图片
2022/04/01 Java/Android
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫