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 正则表达式(转义问题)
Dec 15 Python
Python cx_freeze打包工具处理问题思路及解决办法
Feb 13 Python
python套接字流重定向实例汇总
Mar 03 Python
Python的Flask框架中配置多个子域名的方法讲解
Jun 07 Python
Python之父谈Python的未来形式
Jul 01 Python
浅析Python的web.py框架中url的设定方法
Jul 11 Python
Python生成数字图片代码分享
Oct 31 Python
Python设计模式之中介模式简单示例
Jan 09 Python
Python实现利用163邮箱远程关电脑脚本
Feb 22 Python
python获取引用对象的个数方式
Dec 20 Python
python时间日期操作方法实例小结
Feb 06 Python
Django 解决distinct无法去除重复数据的问题
May 20 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程序员的13个好习惯小结
2012/02/20 PHP
php可应用于面包屑导航的迭代寻找家谱树实现方法
2015/02/02 PHP
php session 写入数据库
2016/02/13 PHP
PHP简单计算两个时间差的方法示例
2017/06/20 PHP
PHP正则验证字符串是否为数字的两种方法并附常用正则
2019/02/27 PHP
Laravel5.7 Eloquent ORM快速入门详解
2019/04/12 PHP
jquery 弹出层注册页面等(asp.net后台)
2010/06/17 Javascript
js bind 函数 使用闭包保存执行上下文
2011/12/26 Javascript
JQuery动画animate的stop方法使用详解
2014/05/09 Javascript
Nodejs如何搭建Web服务器
2016/03/28 NodeJs
微信小程序  audio音频播放详解及实例
2016/11/02 Javascript
基于jQuery实现选项卡效果
2017/01/04 Javascript
Django与Vue语法的冲突问题完美解决方法
2017/12/14 Javascript
JavaScript根据json生成html表格的示例代码
2018/10/24 Javascript
React和Vue中监听变量变化的方法
2018/11/14 Javascript
微信小程序云开发实现云数据库读写权限
2019/05/17 Javascript
JavaScript this关键字指向常用情况解析
2020/09/02 Javascript
详解VUE中的插值( Interpolation)语法
2020/10/18 Javascript
从零学python系列之教你如何根据图片生成字符画
2014/05/23 Python
python中的装饰器详解
2015/04/13 Python
详解Python 数据库 (sqlite3)应用
2016/12/07 Python
Python代码太长换行的实现
2019/07/05 Python
简单了解python数组的基本操作
2019/11/26 Python
Python实现图片识别加翻译功能
2019/12/26 Python
python实现上传文件到linux指定目录的方法
2020/01/03 Python
Pytorch中的自动求梯度机制和Variable类实例
2020/02/29 Python
美国顶级奢侈茶:Mighty Leaf Tea(美泰茶)
2016/11/26 全球购物
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
string = null 和string = ''的区别
2013/04/28 面试题
工业自动化毕业生自荐信范文
2014/01/04 职场文书
工作态度检讨书
2014/02/11 职场文书
2014年学校工会工作总结
2014/12/06 职场文书
体育个人工作总结
2015/02/09 职场文书
百家讲坛观后感
2015/06/12 职场文书
2016年五一促销广告语
2016/01/28 职场文书
Java如何实现树的同构?
2021/06/22 Java/Android