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入门篇之条件、循环
Oct 17 Python
python3+PyQt5实现自定义窗口部件Counters
Apr 20 Python
Python + selenium自动化环境搭建的完整步骤
May 19 Python
python寻找list中最大值、最小值并返回其所在位置的方法
Jun 27 Python
Python3使用Matplotlib 绘制精美的数学函数图形
Apr 11 Python
PyCharm 创建指定版本的 Django(超详图解教程)
Jun 18 Python
Python入门Anaconda和Pycharm的安装和配置详解
Jul 16 Python
pytorch 加载(.pth)格式的模型实例
Aug 20 Python
Python列表的切片实例讲解
Aug 20 Python
关于tensorflow softmax函数用法解析
Jun 30 Python
Selenium关闭INFO:CONSOLE提示的解决
Dec 07 Python
一起来学习Python的元组和列表
Mar 13 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
Laravel 关联模型-关联新增和关联更新的方法
2019/10/10 PHP
js注意img图片的onerror事件的分析
2011/01/01 Javascript
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
2012/01/15 Javascript
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
解决jquery中美元符号命名冲突问题
2014/01/08 Javascript
javascript:FF/Chrome与IE动态加载元素的区别说明
2014/01/26 Javascript
jquery中EasyUI实现异步树
2015/03/01 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
2016/08/09 Javascript
js中通过getElementsByName访问name集合对象的方法
2016/10/31 Javascript
JS+canvas绘制的动态机械表动画效果
2017/09/12 Javascript
React Native中Mobx的使用方法详解
2018/12/04 Javascript
JS左右无缝轮播功能完整实例
2019/05/16 Javascript
async/await让异步操作同步执行的方法详解
2019/11/01 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
整理Python中的赋值运算符
2015/05/13 Python
Python中enumerate函数代码解析
2017/10/31 Python
Python生成任意范围任意精度的随机数方法
2018/04/09 Python
python用列表生成式写嵌套循环的方法
2018/11/08 Python
python判断文件夹内是否存在指定后缀文件的实例
2019/06/10 Python
用Pelican搭建一个极简静态博客系统过程解析
2019/08/22 Python
python垃圾回收机制(GC)原理解析
2019/12/30 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
python excel多行合并的方法
2020/12/09 Python
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
英国知名衬衫品牌美国网站:Charles Tyrwhitt美国
2016/08/28 全球购物
全球领先的中国制造商品在线批发平台:DHgate
2020/01/28 全球购物
物流业务员岗位职责
2014/02/08 职场文书
工程安全员岗位职责
2014/03/09 职场文书
志愿者活动总结报告
2014/06/27 职场文书
机关干部个人对照检查材料思想汇报
2014/09/28 职场文书
2016年校长新年寄语
2015/08/17 职场文书
导游词之蓬莱长岛
2019/12/17 职场文书
vue3如何优雅的实现移动端登录注册模块
2021/03/29 Vue.js
如何使用Python实现一个简易的ORM模型
2021/05/12 Python
Mysql 文件配置解析介绍
2022/05/06 MySQL