Python随机函数库random的使用方法详解


Posted in Python onAugust 21, 2019

前言

众所周知,python拥有丰富的内置库,还支持众多的第三方库,被称为胶水语言,随机函数库random,就是python自带的标准库,他的用法极为广泛,除了生成比较简单的随机数外,还有很多功能。使用random库:

import random

random库主要函数:

函数名 说明 用法
random() 生成一个0~1之间的随机浮点数,范围 0 random.random()
uniform(a,b) 返回a, b之间的随机浮点数,范围[a, b]或[a, b), 取决于四舍五入,a不一定要比b小 random.uniform(1,5)
randint(a, b) 返回a, b之间的整数,范围[a, b],注意:传入参数必须是整数,a一定要比b小 random.randint(0, 100)
randrang([start], stop[, step]) 类似range函数,返回区间内的整数,可以设置step。 random.randrang(1, 10, 2)
choice(seq) 从序列seq中随机读取一个元素 random.choice([1,2,3,4,5])
choices(seq,k) 从序列seq中随机读取k个元素,k默认为1 random.choices([1,2,3,4,5], k=3)
shuffle(x) 将列表中的元素打乱,俗称为洗牌。会修改原有序列。 random.shuffle([1,2,3,4,5])
sample(seq, k) 从指定序列中随机获取k个元素作为一个片段返回,sample函数不会修改原有序列 random.sample([1,2,3,4,5], 2)

random库中的大多数函数使用时,都需要先设计一个序列。如果我们不想每次都去定义,而只是想随机取出一些数字、字母组合的话,就需要用到另一个标准库string:

import string

用string库主要用里面定义的一些字符串常量:

常量 说明
ascii_lowercase 'abcdefghijklmnopqrstuvwxyz' a-z全小写字母
ascii_uppercase 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' A-Z全大写字母
ascii_letters ascii_lowercase + ascii_uppercase 所有大小写字母
digits '0123456789' 0-9数字集合
hexdigits digits + 'abcdef' + 'ABCDEF' 十六进制集合
octdigits '01234567' 八进制集合
punctuation !"#$%&'()*+,-./:;?@[]^_`{|}~ 特殊字符组合
printable digits + ascii_letters + punctuation + whitespace 所有字符集合

random库的使用举例:

1、对文件里的数据进行随机排序(类似名单洗牌,直接上代码,相信都看得懂)

import random
#打开文件
f=open(r'F:\py\123.txt','r')
#读取文件信息,赋予一个变量
data=f.read()
#关闭文件
f.close()
print('数据:',data)
print('\n')
#data是一个字符串,我们以‘,'分隔成一个列表
s=data.split(',')
#随机排序
random.shuffle(s)
print(s)

文件里的内容,也可以写成很多行,上面代码字符串分割时改动一下即可。

Python随机函数库random的使用方法详解

运行结果(可以多运行几遍看一下效果):

数据: A,B,C,D,E,F,G,H,I,J,K

['I', 'K', 'G', 'J', 'D', 'E', 'F', 'C', 'A', 'B', 'H']

2、利用random实现简单的随机红包发放。

import random
def red_packet(total,num):
 for i in range(num-1):
  per=random.uniform(0.01,total/2)
  total=total- per
  print('%.2f'%per)
 else:
  print('%.2f'%total) 
red_packet(10,5)

当然要实现像微信红包那种肯定是要复杂的多,会涉及到算法,这只是利用random库做一个举例。运行结果:

1.89
0.11
3.85
1.08
3.07

同样,多运行几次试试,会不一样。

3、string和random组合使用,随机验证码的生成。

​import random
import string
s=string.digits + string.ascii_letters
v=random.sample(s,4)
print(v)
print(''.join(v))

运行结果:

['2', 'T', 'd', 'H']
2TdH

以上只是random库的简单使用,还有很多其他的用法,大家可以去自己学习,最后引入一句一位前辈对我说过的话:“代码这种东西,自己去敲一遍试试!学不会只有一种原因,就是懒!”,大家共勉。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python读取csv文件示例(python操作csv)
Mar 11 Python
详解Python的Django框架中manage命令的使用与扩展
Apr 11 Python
python 调用c语言函数的方法
Sep 29 Python
python对excel文档去重及求和的实例
Apr 18 Python
Python中Proxypool库的安装与配置
Oct 19 Python
解决vscode python print 输出窗口中文乱码的问题
Dec 03 Python
python程序中的线程操作 concurrent模块使用详解
Sep 23 Python
python实现淘宝购物系统
Oct 25 Python
Python高阶函数、常用内置函数用法实例分析
Dec 26 Python
Python安装依赖(包)模块方法详解
Feb 14 Python
Python实现对word文档添加密码去除密码的示例代码
Dec 29 Python
pycharm安装深度学习pytorch的d2l包失败问题解决
Mar 25 Python
Django+zTree构建组织架构树的方法
Aug 21 #Python
python的移位操作实现详解
Aug 21 #Python
基于Python的微信机器人开发 微信登录和获取好友列表实现解析
Aug 21 #Python
Python+OpenCv制作证件图片生成器的操作方法
Aug 21 #Python
Python数据可视化实现正态分布(高斯分布)
Aug 21 #Python
django自带serializers序列化返回指定字段的方法
Aug 21 #Python
应用OpenCV和Python进行SIFT算法的实现详解
Aug 21 #Python
You might like
php.ini中date.timezone设置分析
2011/07/29 PHP
PHP写的求多项式导数的函数代码
2012/07/04 PHP
js innerHTML 的一些问题的解决方法
2008/06/22 Javascript
Javascript 阻止javascript事件冒泡,获取控件ID值
2009/06/27 Javascript
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
2013/04/02 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
浅析JavaScript中的delete运算符
2013/11/30 Javascript
jquery解析XML字符串和XML文件的方法说明
2014/02/21 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
javascript数组对象常用api函数小结(连接,插入,删除,反转,排序等)
2016/09/20 Javascript
JavaScript自定义文本框光标
2017/03/05 Javascript
微信小程序日历/日期选择插件使用方法详解
2018/12/28 Javascript
vue watch关于对象内的属性监听
2019/04/22 Javascript
vue中nextTick用法实例
2019/09/11 Javascript
vue使用vant中的checkbox实现全选功能
2020/11/17 Vue.js
[01:38]【DOTA2亚洲邀请赛】Sumail——梦开始的地方
2017/03/03 DOTA
python实现简单socket通信的方法
2016/04/19 Python
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
Python实现base64编码的图片保存到本地功能示例
2018/06/22 Python
python写日志文件操作类与应用示例
2019/07/01 Python
Python多线程模块Threading用法示例小结
2019/11/09 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
2020/03/25 Python
Python 内存管理机制全面分析
2021/01/16 Python
Pytorch 中的optimizer使用说明
2021/03/03 Python
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
HomeAway的巴西品牌:Alugue Temporada
2018/04/10 全球购物
美国电子产品购物网站:BuyDig.com
2020/06/17 全球购物
文明家庭先进事迹材
2014/01/27 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
1000字打架检讨书
2014/11/03 职场文书
解除同居协议书
2015/01/29 职场文书
死者家属慰问信
2015/03/24 职场文书
消费者投诉书范文
2015/07/02 职场文书
Node与Python 双向通信的实现代码
2021/07/16 Javascript
AndroidStudio图片压缩工具ImgCompressPlugin使用实例
2022/08/05 Java/Android