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构造icmp echo请求和实现网络探测器功能代码分享
Jan 10 Python
python处理cookie详解
Feb 07 Python
Python、Javascript中的闭包比较
Feb 04 Python
Python+树莓派+YOLO打造一款人工智能照相机
Jan 02 Python
解决pycharm回车之后不能换行或不能缩进的问题
Jan 16 Python
python实现合并两个排序的链表
Mar 03 Python
详解Python sys.argv使用方法
May 10 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
Feb 24 Python
Django用数据库表反向生成models类知识点详解
Mar 25 Python
Python使用多进程运行含有任意个参数的函数
May 02 Python
Python 制作查询商品历史价格的小工具
Oct 20 Python
Python编解码问题及文本文件处理方法详解
Jun 20 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
使用php重新实现PHP脚本引擎内置函数
2007/03/06 PHP
探讨如何在PHP开启gzip页面压缩实例
2013/06/09 PHP
Php中使用Select 查询语句的实例
2014/02/19 PHP
用PHP的socket实现客户端到服务端的通信实例详解
2017/02/04 PHP
Laravel框架用户登陆身份验证实现方法详解
2017/09/14 PHP
js异或加解密效果代码
2008/06/25 Javascript
javascript 使td内容不换行不撑开
2012/11/29 Javascript
判断及设置浏览器全屏模式
2014/04/20 Javascript
jQuery CSS()方法改变现有的CSS样式表
2014/09/09 Javascript
javascript实现tab切换的两个实例
2015/11/05 Javascript
详解JS: reduce方法实现 webpack多文件入口
2017/02/14 Javascript
angular select 默认值设置方法
2017/06/23 Javascript
基于JavaScript实现弹幕特效
2020/08/27 Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
2017/09/20 Javascript
vue-cli开发环境实现跨域请求的方法
2018/04/07 Javascript
Vue.use源码学习小结
2018/06/20 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
javascript实现获取中文汉字拼音首字母
2020/05/19 Javascript
vue实现移动端H5数字键盘组件使用详解
2020/08/25 Javascript
Python中实现远程调用(RPC、RMI)简单例子
2014/04/28 Python
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
python高手之路python处理excel文件(方法汇总)
2016/01/07 Python
基于python实现的抓取腾讯视频所有电影的爬虫
2016/04/22 Python
Python 使用matplotlib模块模拟掷骰子
2019/08/08 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
Python使用Excel将数据写入多个sheet
2020/05/16 Python
Python实现GIF图倒放
2020/07/16 Python
如何将Pycharm中调整字体大小的方式设置为&quot;ctrl+鼠标滚轮上下滑&quot;
2020/11/17 Python
日语专业个人求职信范文
2014/02/02 职场文书
关于抽烟的检讨书
2014/02/25 职场文书
祖国在我心中演讲稿600字
2014/09/23 职场文书
六一文艺汇演开幕词
2015/01/29 职场文书
可可西里观后感
2015/06/08 职场文书
污染环境建议书
2015/09/14 职场文书
《多彩的民间艺术》教学反思
2016/02/16 职场文书
MongoDB数据库之添删改查
2022/04/26 MongoDB