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的Flask框架中使用日期和时间的教程
Apr 21 Python
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
May 05 Python
Python Matplotlib库入门指南
May 18 Python
python3制作捧腹网段子页爬虫
Feb 12 Python
详解python基础之while循环及if判断
Aug 24 Python
python下载文件记录黑名单的实现代码
Oct 24 Python
使用python读取csv文件快速插入数据库的实例
Jun 21 Python
Python函数的参数常见分类与用法实例详解
Mar 30 Python
Python基于内置库pytesseract实现图片验证码识别功能
Feb 24 Python
python数字类型math库原理解析
Mar 02 Python
详解Python3中的 input() 函数
Mar 18 Python
python zip()函数的使用示例
Sep 23 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中的cookie
2006/11/26 PHP
zen cart新进商品的随机排序修改方法
2010/09/10 PHP
php生成随机字符串可指定纯数字、纯字母或者混合的
2014/04/18 PHP
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
2015/05/25 PHP
PHP新建类问题分析及解决思路
2015/11/19 PHP
PHP中set_include_path()函数相关用法分析
2016/07/18 PHP
PHP输出多个元素的排列或组合的方法
2017/03/14 PHP
TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
2020/02/10 PHP
HR vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
Ext grid 添加右击菜单
2009/11/26 Javascript
JS函数验证总结(方便js客户端输入验证)
2010/10/29 Javascript
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
js与运算符和或运算符的妙用
2014/02/14 Javascript
超链接的禁用属性Disabled使用示例
2014/07/31 Javascript
javascript实现可拖动变色并关闭层窗口实例
2015/05/15 Javascript
谈谈JavaScript的New关键字
2016/08/26 Javascript
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
React Native验证码倒计时工具类分享
2017/10/24 Javascript
vue2.0 实现页面导航提示引导的方法
2018/03/13 Javascript
js仿360开机效果
2019/12/26 Javascript
jQuery实现鼠标拖拽登录框移动效果
2020/09/13 jQuery
Ubuntu下升级 python3.7.1流程备忘(推荐)
2018/12/10 Python
TensorFLow 数学运算的示例代码
2020/04/21 Python
Python如何避免文件同名产生覆盖
2020/06/09 Python
python实现图片素描效果
2020/09/26 Python
2019年Java 最常见的 面试题
2016/10/19 面试题
this关键字的作用
2016/01/30 面试题
办公室主任先进事迹
2014/01/18 职场文书
大学生村官座谈会发言材料
2014/05/25 职场文书
财务科长个人对照检查材料
2014/09/18 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
打架检讨书范文
2015/01/27 职场文书
开幕式邀请函
2015/01/31 职场文书
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL
mysql自增长id用完了该怎么办
2022/02/12 MySQL
《模拟人生4》推出新补丁 “婚礼奇缘”DLC终于得到修复
2022/04/03 其他游戏