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写的windows服务不能启动的问题
Apr 15 Python
使用FastCGI部署Python的Django应用的教程
Jul 22 Python
老生常谈Python基础之字符编码
Jun 14 Python
python微信跳一跳系列之棋子定位颜色识别
Feb 26 Python
Python实现批量读取图片并存入mongodb数据库的方法示例
Apr 02 Python
python中找出numpy array数组的最值及其索引方法
Apr 17 Python
matplotlib.pyplot画图 图片的二进制流的获取方法
May 24 Python
使用Python实现微信提醒备忘录功能
Dec 04 Python
Python修改列表值问题解决方案
Mar 06 Python
Python调用接口合并Excel表代码实例
Mar 31 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
Apr 07 Python
python通过函数名调用函数的几种场景
Sep 23 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的autoLoad自动加载机制
2012/09/27 PHP
PHP实现文件上传与下载实例与总结
2016/03/13 PHP
Laravel5.4框架使用socialite实现github登录的方法
2019/03/20 PHP
PHP进阶学习之Geo的地图定位算法详解
2019/06/19 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
Javascript结合css实现网页换肤功能
2009/11/02 Javascript
jquery操作对象数组元素方法详解
2014/11/26 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
2015/03/02 Javascript
javaScript 逻辑运算符使用技巧整理
2017/05/03 Javascript
史上最全JavaScript数组去重的十种方法(推荐)
2017/08/17 Javascript
Vue的Class与Style绑定的方法
2017/09/01 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
2017/10/11 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
angular8和ngrx8结合使用的步骤介绍
2019/12/01 Javascript
js编写简易的计算器
2020/07/29 Javascript
vue npm install 安装某个指定的版本操作
2020/08/11 Javascript
js实现QQ邮箱邮件拖拽删除功能
2020/08/27 Javascript
[01:14]辉夜杯战队访谈宣传片—NEWBEE.Y
2015/12/26 DOTA
python通过wxPython打开一个音频文件并播放的方法
2015/03/25 Python
Python的网络编程库Gevent的安装及使用技巧
2016/06/24 Python
Python爬虫框架Scrapy实例代码
2018/03/04 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
2018/04/18 Python
解决python文件双击运行秒退的问题
2019/06/24 Python
处理Selenium3+python3定位鼠标悬停才显示的元素
2019/07/31 Python
python 匿名函数与三元运算学习笔记
2020/10/23 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
努比亚手机官网:nubia
2016/10/06 全球购物
计算机本科生自荐信
2013/10/15 职场文书
最新茶叶店创业计划书
2014/01/14 职场文书
应届生面试求职信
2014/07/02 职场文书
个人授权委托书格式
2014/08/30 职场文书
文员试用期转正自我鉴定
2014/09/14 职场文书
小学生2015教师节演讲稿
2015/03/19 职场文书
建国大业电影观后感
2015/06/01 职场文书
军训心得体会范文(2016最新篇)
2016/01/11 职场文书
2016新党章学习心得体会
2016/01/15 职场文书