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函数参数*args**kwargs用法实例
Dec 04 Python
从零学Python之hello world
May 21 Python
python中的sort方法使用详解
Jul 25 Python
Python删除空文件和空文件夹的方法
Jul 14 Python
import的本质解析
Oct 30 Python
Python使用Turtle模块绘制五星红旗代码示例
Dec 11 Python
python 处理string到hex脚本的方法
Oct 26 Python
使用Python 正则匹配两个特定字符之间的字符方法
Dec 24 Python
python3 webp转gif格式的实现示例
Dec 10 Python
python psutil监控进程实例
Dec 17 Python
Python中join()函数多种操作代码实例
Jan 13 Python
拒绝盗图!教你怎么用python给图片加水印
Jun 04 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编程与应用
2006/10/09 PHP
php调用shell的方法
2014/11/05 PHP
thinkPHP5.0框架引入Traits功能实例分析
2017/03/18 PHP
laravel 实现向公共模板中传值 (view composer)
2019/10/22 PHP
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
js每隔5分钟执行一次ajax请求的实现方法
2013/11/27 Javascript
学习JavaScript正则表达式
2015/11/13 Javascript
jquery实现一个简单的表单验证实例
2016/03/30 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
BootStrap modal模态弹窗使用小结
2016/10/26 Javascript
node.js缺少mysql模块运行报错的解决方法
2016/11/13 Javascript
JavaScript给每一个li节点绑定点击事件的实现方法
2016/12/01 Javascript
详解VueJS 数据驱动和依赖追踪分析
2017/07/26 Javascript
JavaScript Date对象应用实例分享
2017/10/30 Javascript
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
基于jquery实现左右上下移动效果
2018/05/02 jQuery
详解微信小程序图片地扯转base64解决方案
2019/08/18 Javascript
JS可断点续传文件上传实现代码解析
2020/07/30 Javascript
javascript中正则表达式语法详解
2020/08/07 Javascript
python赋值操作方法分享
2013/03/23 Python
Ruby使用eventmachine为HTTP服务器添加文件下载功能
2016/04/20 Python
详解TensorFlow查看ckpt中变量的几种方法
2018/06/19 Python
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
Python基础教程之if判断,while循环,循环嵌套
2019/04/25 Python
Django REST framework内置路由用法
2019/07/26 Python
Python3基于plotly模块保存图片表格
2020/08/03 Python
英国领先的维生素和补充剂品牌:Higher Nature
2019/08/26 全球购物
在SQL Server中创建数据库主要有那种方式
2013/09/10 面试题
医学生实习自我鉴定
2013/09/27 职场文书
2015年试用期自我评价范文
2015/03/10 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
民事诉讼答辩状范文
2015/05/21 职场文书
统招统分证明
2015/06/23 职场文书
升学宴祝酒词
2015/08/11 职场文书
2016感恩父亲节主题广播稿
2015/12/18 职场文书
原生JS中应该禁止出现的写法
2021/05/05 Javascript