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 相关文章推荐
Pyramid将models.py文件的内容分布到多个文件的方法
Nov 27 Python
介绍Python中内置的itertools模块
Apr 29 Python
Python实现简单拆分PDF文件的方法
Jul 30 Python
python基础教程之匿名函数lambda
Jan 17 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
Feb 05 Python
python删除不需要的python文件方法
Apr 24 Python
儿童学习python的一些小技巧
May 27 Python
使用TensorFlow实现二分类的方法示例
Feb 05 Python
set在python里的含义和用法
Jun 24 Python
使用python快速实现不同机器间文件夹共享方式
Dec 22 Python
解决Python图形界面中设置尺寸的问题
Mar 05 Python
python实现批量转换图片为黑白
Jun 16 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
常用星际术语索引(新手指南)
2020/03/04 星际争霸
PHP学习笔记之二
2011/01/17 PHP
php的array数组和使用实例简明教程(容易理解)
2014/03/20 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
2014/05/05 PHP
PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
2015/12/25 PHP
利用php-cli和任务计划实现订单同步功能的方法
2017/05/03 PHP
Ajax+PHP实现的模拟进度条功能示例
2019/02/11 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
2019/07/03 PHP
php命名空间设计思想、用法与缺点分析
2019/07/17 PHP
分享一个自己写的table表格排序js插件(高效简洁)
2011/10/29 Javascript
网站内容禁止复制和粘贴、另存为的js代码
2014/02/26 Javascript
jquery列表拖动排列(由项目提取相当好用)
2014/06/17 Javascript
node.js中格式化数字增加千位符的几种方法
2015/07/03 Javascript
简单实现兼容各大浏览器的js复制内容到剪切板
2015/09/09 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
解决vue热替换失效的根本原因
2018/09/19 Javascript
Vue 3.0 前瞻Vue Function API新特性体验
2019/08/12 Javascript
如何解决vue在ios微信&quot;复制链接&quot;功能问题
2020/03/26 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
2020/05/19 Javascript
[02:03]风行者至宝清风环佩外观展示
2020/09/05 DOTA
分析Python中设计模式之Decorator装饰器模式的要点
2016/03/02 Python
Python入门_浅谈数据结构的4种基本类型
2017/05/16 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
Python日志无延迟实时写入的示例
2019/07/11 Python
Python使用Socket实现简单聊天程序
2020/02/28 Python
python中安装django模块的方法
2020/03/12 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
Python数据可视化图实现过程详解
2020/06/12 Python
如何在python中判断变量的类型
2020/07/29 Python
Nike瑞典官方网站:Nike.com (SE)
2018/11/26 全球购物
extern在函数声明中是什么意思
2014/01/19 面试题
论文评语大全
2014/04/29 职场文书
考试作弊被抓检讨书
2014/10/02 职场文书
培训通知
2015/04/17 职场文书
百万英镑观后感
2015/06/09 职场文书
七年级作文之关于奶奶
2019/10/29 职场文书