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 相关文章推荐
Python3里的super()和__class__使用介绍
Apr 23 Python
Python字典的核心底层原理讲解
Jan 24 Python
Python实现京东秒杀功能代码
May 16 Python
决策树剪枝算法的python实现方法详解
Sep 18 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
Jan 16 Python
tensorflow实现二维平面模拟三维数据教程
Feb 11 Python
django中的数据库迁移的实现
Mar 16 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
Apr 10 Python
如何通过Python3和ssl实现加密通信功能
May 09 Python
pandas数据处理之绘图的实现
Jun 15 Python
解决pip安装的第三方包在PyCharm无法导入的问题
Oct 15 Python
Python日志打印里logging.getLogger源码分析详解
Jan 17 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 事务处理数据实现代码
2010/05/13 PHP
PHP 登录记住密码实现思路
2013/05/07 PHP
PHP使用curl_multi实现并发请求的方法示例
2018/04/29 PHP
如何在Mozilla Gecko 用Javascript加载XSL
2007/01/09 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
js history对象简单实现返回和前进
2013/10/30 Javascript
屏蔽IE弹出&quot;您查看的网页正在试图关闭窗口,是否关闭此窗口&quot;的方法
2013/12/31 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
2016/07/05 Javascript
jQuery+ajax读取并解析XML文件的方法
2016/09/09 Javascript
Angularjs手动解析表达式($parse)
2016/10/12 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
JS库之Three.js 简易入门教程(详解之一)
2017/09/13 Javascript
基于BootStrap的文本编辑器组件Summernote
2017/10/27 Javascript
微信小程序倒计时功能实例代码
2018/07/17 Javascript
解决百度Echarts图表坐标轴越界的方法
2018/10/17 Javascript
详解基于Vue/React项目的移动端适配方案
2019/08/23 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
2020/05/19 Javascript
Python中生成器和迭代器的区别详解
2018/02/10 Python
Python多继承原理与用法示例
2018/08/23 Python
python+mysql实现教务管理系统
2019/02/20 Python
Python 2/3下处理cjk编码的zip文件的方法
2019/04/26 Python
django框架模板中定义变量(set variable in django template)的方法分析
2019/06/24 Python
python 画出使用分类器得到的决策边界
2019/08/21 Python
Python基于paramunittest模块实现excl参数化
2020/04/26 Python
英国现代家具和装饰网站:PN Home
2018/08/16 全球购物
方法名是否可以与构造器的名字相同
2012/06/04 面试题
2014优秀党员事迹材料
2014/08/14 职场文书
国情备忘录观后感
2015/06/04 职场文书
地雷战观后感
2015/06/09 职场文书
天那边观后感
2015/06/09 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书
预备党员入党思想汇报(范文)
2019/08/14 职场文书
Python数据分析之pandas函数详解
2021/04/21 Python
提取视频中的音频 Python只需要三行代码!
2021/05/10 Python
浅谈@Value和@Bean的执行顺序问题
2021/06/16 Java/Android