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学习资料
Feb 08 Python
Python代理抓取并验证使用多线程实现
May 03 Python
python 顺时针打印矩阵的超简洁代码
Nov 14 Python
python 使用 requests 模块发送http请求 的方法
Dec 09 Python
python3下载抖音视频的完整代码
Jun 05 Python
使用python 写一个静态服务(实战)
Jun 28 Python
在python shell中运行python文件的实现
Dec 21 Python
python异常处理和日志处理方式
Dec 24 Python
flask框架渲染Jinja模板与传入模板变量操作详解
Jan 25 Python
Python爬虫后获取重定向url的两种方法
Jan 19 Python
python第三方网页解析器 lxml 扩展库与 xpath 的使用方法
Apr 06 Python
浅析Python实现DFA算法
Jun 26 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更改目录及子目录下所有的文件后缀的代码
2010/09/24 PHP
PHP生成json和xml类型接口数据格式
2015/05/17 PHP
php base64 编码与解码实例代码
2017/03/21 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
在次封装easyui-Dialog插件实现代码
2010/11/14 Javascript
js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版
2011/01/08 Javascript
js Function类型
2011/12/04 Javascript
用javascript添加控件自定义属性解析
2013/11/25 Javascript
理解jQuery stop()方法
2014/11/21 Javascript
jQuery显示和隐藏 常用的状态判断方法
2015/01/29 Javascript
JavaScript动态修改弹出窗口大小的方法
2015/04/06 Javascript
深入浅出分析javaScript中this用法
2015/05/09 Javascript
从零开始学习Node.js系列教程之基于connect和express框架的多页面实现数学运算示例
2017/04/13 Javascript
深入浅析Vue.js中 computed和methods不同机制
2018/03/22 Javascript
[49:08]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.27
2020/12/01 DOTA
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
python3模块smtplib实现发送邮件功能
2018/05/22 Python
python正则表达式之对号入座篇
2018/07/24 Python
python保存文件方法小结
2018/07/27 Python
对tensorflow 的模型保存和调用实例讲解
2018/07/28 Python
Python求正态分布曲线下面积实例
2019/11/20 Python
python的time模块和datetime模块实例解析
2019/11/29 Python
python中文分词库jieba使用方法详解
2020/02/11 Python
空指针到底是什么
2012/08/07 面试题
工作自荐信
2013/12/11 职场文书
职业生涯规划书前言
2014/04/15 职场文书
大学生联谊活动策划书(光棍节)
2014/10/10 职场文书
2015年幼儿园个人工作总结
2015/04/25 职场文书
在人间读书笔记
2015/06/30 职场文书
2016年党支部公开承诺书
2016/03/25 职场文书
本地通过nginx配置反向代理的全过程记录
2021/03/31 Servers
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python
忆童年!用Python实现愤怒的小鸟游戏
2021/06/07 Python
安装配置mysql及Navicat prenium的详细流程
2021/06/10 MySQL
vue使用localStorage持久性存储实现评论列表
2022/04/14 Vue.js
JDK8中String的intern()方法实例详细解读
2022/09/23 Java/Android