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数据结构之Array用法实例
Oct 09 Python
你所不知道的Python奇技淫巧13招【实用】
Dec 14 Python
使用Python3制作TCP端口扫描器
Apr 17 Python
Python实现手写一个类似django的web框架示例
Jul 20 Python
python绘制散点图并标记序号的方法
Dec 11 Python
python实现基于信息增益的决策树归纳
Dec 18 Python
python实现大转盘抽奖效果
Jan 22 Python
运用Python的webbrowser实现定时打开特定网页
Feb 21 Python
Python3.5面向对象编程图文与实例详解
Apr 24 Python
python3 requests库文件上传与下载实现详解
Aug 22 Python
python用TensorFlow做图像识别的实现
Apr 21 Python
python代码实现图书管理系统
Nov 30 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遍历并打印指定目录下所有文件实例
2014/02/10 PHP
php统计时间和内存使用情况示例分享
2014/03/13 PHP
Php连接及读取和写入mysql数据库的常用代码
2014/08/11 PHP
php缓冲输出实例分析
2015/01/05 PHP
php简单实现发送带附件的邮件
2015/06/10 PHP
PHP实现链式操作的原理详解
2016/09/16 PHP
php从数据库中获取数据用ajax传送到前台的方法
2018/08/20 PHP
PHP实现的抓取小说网站内容功能示例
2019/06/27 PHP
Ctrl+Enter提交内容信息
2006/06/26 Javascript
var与Javascript变量隐式声明
2009/09/17 Javascript
JavaScript中合并数组的N种方法
2014/09/16 Javascript
js实现百度联盟中一款不错的图片切换效果完整实例
2015/03/04 Javascript
JavaScript中的bold()方法使用详解
2015/06/08 Javascript
JavaScript判断数组是否包含指定元素的方法
2015/07/01 Javascript
JavaScript设置表单上传时文件个数的方法
2015/08/11 Javascript
js实现简洁的TAB滑动门效果代码
2015/09/06 Javascript
Webpack常见静态资源处理-模块加载器(Loaders)+ExtractTextPlugin插件
2017/06/29 Javascript
DVA框架统一处理所有页面的loading状态
2017/08/25 Javascript
微信小程序实现单选功能
2018/10/30 Javascript
js纯前端实现腾讯cos文件上传功能的示例代码
2019/05/14 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
微信小程序绘制半圆(弧形)进度条
2020/11/18 Javascript
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
Python类的继承用法示例
2019/01/31 Python
Python实现简单查找最长子串功能示例
2019/02/26 Python
python快速编写单行注释多行注释的方法
2019/07/31 Python
python实现根据文件格式分类
2019/10/31 Python
Python基于内置库pytesseract实现图片验证码识别功能
2020/02/24 Python
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
美国最灵活的移动提供商:Tello
2017/07/18 全球购物
linux面试题参考答案(4)
2014/09/21 面试题
计算机软件个人的自荐信范文
2013/12/01 职场文书
入党积极分子批评与自我批评思想汇报
2014/09/14 职场文书
学校教师师德师风承诺书
2015/04/28 职场文书
python3实现无权最短路径的方法
2021/05/12 Python
pd.drop_duplicates删除重复行的方法实现
2022/06/16 Python