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通过shutil实现快速文件复制的方法
Mar 14 Python
Python实现telnet服务器的方法
Jul 10 Python
python编写Logistic逻辑回归
Dec 30 Python
python操作xlsx文件的包openpyxl实例
May 03 Python
python使用Plotly绘图工具绘制散点图、线形图
Apr 02 Python
Django框架封装外部函数示例
May 28 Python
python基于pdfminer库提取pdf文字代码实例
Aug 15 Python
python tkinter组件摆放方式详解
Sep 16 Python
解决tensorflow训练时内存持续增加并占满的问题
Jan 19 Python
常用python爬虫库介绍与简要说明
Jan 25 Python
pytorch 移动端部署之helloworld的使用
Oct 30 Python
pytorch finetuning 自己的图片进行训练操作
Jun 05 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
配置支持SSI
2006/11/25 PHP
Function eregi is deprecated (解决方法)
2013/06/21 PHP
destoon实现调用热门关键字的方法
2014/07/15 PHP
学习PHP Cookie处理函数
2016/08/09 PHP
php实现的生成迷宫与迷宫寻址算法完整实例
2017/11/06 PHP
PHP的cookie与session原理及用法详解
2019/09/27 PHP
Javascript对象中关于setTimeout和setInterval的this介绍
2012/07/21 Javascript
jquery.cookie用法详细解析
2013/12/18 Javascript
javascript的创建多行字符串的7种方法
2014/04/29 Javascript
jquery实现通用版鼠标经过淡入淡出效果
2014/06/15 Javascript
JavaScript进阶练习及简单实例分析
2016/06/03 Javascript
js学习之----深入理解闭包
2016/11/21 Javascript
jQuery实现遍历复选框的方法示例
2017/03/06 Javascript
vue.js组件vue-waterfall-easy实现瀑布流效果
2017/08/22 Javascript
JS使用tofixed与round处理数据四舍五入的区别
2017/10/25 Javascript
了解ESlint和其相关操作小结
2018/05/21 Javascript
移动端手指操控左右滑动的菜单
2019/09/08 Javascript
JavaScript 链表定义与使用方法示例
2020/04/28 Javascript
原生JavaScript实现弹幕组件的示例代码
2020/10/12 Javascript
python中list循环语句用法实例
2014/11/10 Python
python实现网站的模拟登录
2016/01/04 Python
Python命令启动Web服务器实例详解
2017/02/23 Python
Python3 实现随机生成一组不重复数并按行写入文件
2018/04/09 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
2018/11/29 Python
对python 调用类属性的方法详解
2019/07/02 Python
python3 写一个WAV音频文件播放器的代码
2019/09/27 Python
python中有关时间日期格式转换问题
2019/12/25 Python
Python字符串三种格式化输出
2020/09/17 Python
经理秘书找工作求职信
2013/12/19 职场文书
担保书格式及范文
2014/04/01 职场文书
房产继承公证书
2014/04/09 职场文书
运动会口号8字
2014/06/07 职场文书
2014年学生资助工作总结
2014/12/18 职场文书
演讲稿:态度决定一切
2019/04/02 职场文书
Golang MatrixOne使用介绍和汇编语法
2022/04/19 Golang