Python中random模块生成随机数详解


Posted in Python onMarch 10, 2016

Python中的random模块用于生成随机数。下面介绍一下random模块中最常用的几个函数。

random.random

random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0

random.uniform

random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: a <= n <= b。如果 a <b, 则 b <= n <= a。

print random.uniform(10, 20) 
print random.uniform(20, 10) 
#---- 结果(不同机器上的结果不一样) 
#18.7356606526 
#12.5798298022

random.randint

random.randint()的函数原型为:random.randint(a, b),用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b

print random.randint(12, 20) #生成的随机数n: 12 <= n <= 20 
print random.randint(20, 20) #结果永远是20 
#print random.randint(20, 10) #该语句是错误的。下限必须小于上限。

random.randrange

random.randrange的函数原型为:random.randrange([start], stop[, step]),从指定范围内,按指定基数递增的集合中 获取一个随机数。如:random.randrange(10, 100, 2),结果相当于从[10, 12, 14, 16, ... 96, 98]序列中获取一个随机数。random.randrange(10, 100, 2)在结果上与 random.choice(range(10, 100, 2) 等效。

random.choice

random.choice从序列中获取一个随机元素。其函数原型为:random.choice(sequence)。参数sequence表示一个有序类型。这里要说明 一下:sequence在python不是一种特定的类型,而是泛指一系列的类型。list, tuple, 字符串都属于sequence。有关sequence可以查看python手册数据模型这一章。下面是使用choice的一些例子:

print random.choice("学习Python") 
print random.choice(["JGood", "is", "a", "handsome", "boy"]) 
print random.choice(("Tuple", "List", "Dict"))

random.shuffle

random.shuffle的函数原型为:random.shuffle(x[, random]),用于将一个列表中的元素打乱。如:

p = ["Python", "is", "powerful", "simple", "and so on..."] 
random.shuffle(p) 
print p 
#---- 结果(不同机器上的结果可能不一样。) 
#['powerful', 'simple', 'is', 'Python', 'and so on...']

random.sample

random.sample的函数原型为:random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。

list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
slice = random.sample(list, 5) #从list中随机获取5个元素,作为一个片断返回 
print slice 
print list #原有序列并没有改变。

上面这些方法是random模块中最常用的,在Python手册中,还介绍其他的方法。感兴趣的朋友可以通过查询Python手册了解更详细的信息。

Python 相关文章推荐
Python检测一个对象是否为字符串类的方法
May 21 Python
python获取多线程及子线程的返回值
Nov 15 Python
python读取与写入csv格式文件的示例代码
Dec 16 Python
python下解压缩zip文件并删除文件的实例
Apr 24 Python
对numpy中的transpose和swapaxes函数详解
Aug 02 Python
python MNIST手写识别数据调用API的方法
Aug 08 Python
Python 使用类写装饰器的小技巧
Sep 30 Python
python图像处理模块Pillow的学习详解
Oct 09 Python
Windows下python3安装tkinter的问题及解决方法
Jan 06 Python
python合并多个excel文件的示例
Sep 23 Python
python使用selenium爬虫知乎的方法示例
Oct 28 Python
python中time包实例详解
Feb 02 Python
python生成器表达式和列表解析
Mar 10 #Python
python迭代器与生成器详解
Mar 10 #Python
Python装饰器基础详解
Mar 09 #Python
Python求算数平方根和约数的方法汇总
Mar 09 #Python
Python实现Linux命令xxd -i功能
Mar 06 #Python
基于Python实现一个简单的银行转账操作
Mar 06 #Python
Python切片知识解析
Mar 06 #Python
You might like
Terran兵种对照表
2020/03/14 星际争霸
php学习之 数组声明
2011/06/09 PHP
PHP中array_keys和array_unique函数源码的分析
2016/02/26 PHP
PHP实现补齐关闭的HTML标签
2016/03/22 PHP
如何离线执行php任务
2017/02/21 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
jQuery EasyUI 中文API Button使用实例
2010/04/14 Javascript
javascript的数据类型、字面量、变量介绍
2012/05/23 Javascript
JavaScript实现拼音排序的方法
2012/11/20 Javascript
用JS提交参数创建form表单在FireFox中遇到的问题
2013/01/16 Javascript
20行代码实现的一个CSS覆盖率测试脚本
2013/07/07 Javascript
Javascript浅谈之this
2013/12/17 Javascript
node.js中的http.response.getHeader方法使用说明
2014/12/14 Javascript
jQuery菜单插件superfish使用指南
2015/04/21 Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
2017/01/04 Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
2017/04/28 jQuery
jquery实现简单实用的轮播器
2017/05/23 jQuery
AjaxUpLoad.js实现文件上传
2018/03/05 Javascript
详解jQuery获取特殊属性的值以及设置内容
2018/11/14 jQuery
vue-cli+iview项目打包上线之后图标不显示问题及解决方法
2019/10/16 Javascript
[49:08]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.27
2020/12/01 DOTA
教你用Type Hint提高Python程序开发效率
2016/08/08 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
2020/06/23 Python
python 列表递归求和、计数、求最大元素的实例
2018/11/28 Python
Python中的 is 和 == 以及字符串驻留机制详解
2019/06/28 Python
python web框架中实现原生分页
2019/09/08 Python
pytorch进行上采样的种类实例
2020/02/18 Python
python else语句在循环中的运用详解
2020/07/06 Python
小班重阳节活动方案
2014/02/08 职场文书
应聘护理专业毕业自荐书范文
2014/02/12 职场文书
大学生演讲稿
2014/04/25 职场文书
反腐倡廉剖析材料
2014/09/30 职场文书
2015年女职工工作总结
2015/05/15 职场文书
网络新闻该怎么写?这些写作技巧你都知道吗?
2019/08/26 职场文书
Python基础之数据类型知识汇总
2021/05/18 Python
Python基础之进程详解
2021/05/21 Python