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多线程方式执行多个bat代码
Jun 07 Python
使用PyInstaller将python转成可执行文件exe笔记
May 26 Python
python 对key为时间的dict排序方法
Oct 17 Python
纯用NumPy实现神经网络的示例代码
Oct 24 Python
python用post访问restful服务接口的方法
Dec 07 Python
浅谈Pandas Series 和 Numpy array中的相同点
Jun 28 Python
Python多线程爬取豆瓣影评API接口
Oct 22 Python
使用python切片实现二维数组复制示例
Nov 26 Python
pytorch中nn.Conv1d的用法详解
Dec 31 Python
如何基于Python + requests实现发送HTTP请求
Jan 13 Python
scrapy实践之翻页爬取的实现
Jan 05 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
Feb 03 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
PHP 代码规范小结
2012/03/08 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
2016/04/02 PHP
打开新窗口关闭当前页面不弹出关闭提示js代码
2013/03/18 Javascript
js取得html iframe中的元素和变量值
2014/06/30 Javascript
JS运动基础框架实例分析
2015/03/03 Javascript
Javascript中的作用域和上下文深入理解
2015/07/03 Javascript
详解AngularJS中自定义过滤器
2015/12/28 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
mvc中form表单提交的三种方式(推荐)
2016/08/10 Javascript
JS打开摄像头并截图上传示例
2017/02/18 Javascript
ES6新特性之字符串的扩展实例分析
2017/04/01 Javascript
JavaScript 数组的进化与性能分析
2017/09/18 Javascript
vscode自定义vue模板的实现
2021/01/27 Vue.js
[46:47]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS NE
2014/05/22 DOTA
pymongo给mongodb创建索引的简单实现方法
2015/05/06 Python
Python画图学习入门教程
2016/07/01 Python
TensorFlow实现AutoEncoder自编码器
2018/03/09 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
2018/04/02 Python
python查看文件大小和文件夹内容的方法
2019/07/08 Python
Python中断多重循环的思路总结
2019/10/04 Python
Python 解析简单的XML数据
2020/07/24 Python
matplotlib基础绘图命令之imshow的使用
2020/08/13 Python
澳大利亚牛仔裤商店:Just Jeans
2016/10/13 全球购物
孕妇装中的著名品牌:Isabella Oliver(伊莎贝拉·奥利弗)
2016/10/31 全球购物
Interflora澳大利亚:同日鲜花速递
2019/06/25 全球购物
网络安全类面试题
2015/08/01 面试题
个人自我鉴定范文
2013/10/04 职场文书
促销活动总结范文
2014/04/30 职场文书
法学专业毕业实习自我鉴定2014
2014/09/27 职场文书
初二学生评语大全
2014/12/26 职场文书
2015年派出所工作总结
2015/04/24 职场文书
教师文明餐桌光盘行动倡议书
2015/04/28 职场文书
售后服务质量承诺书
2015/04/29 职场文书
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python
Python如何用re模块实现简易tokenizer
2022/05/02 Python