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统计文件行数示例分享
Feb 21 Python
python3中bytes和string之间的互相转换
Feb 09 Python
python使用TensorFlow进行图像处理的方法
Feb 28 Python
对numpy中shape的深入理解
Jun 15 Python
用Python shell简化开发
Aug 08 Python
python实现手机销售管理系统
Mar 19 Python
如何在django中实现分页功能
Apr 22 Python
Python sorted对list和dict排序
Jun 09 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
Jul 13 Python
Python实现数字的格式化输出
Aug 01 Python
PyCharm最新激活码(2020/10/27全网最新)
Oct 27 Python
Python使用Web框架Flask开发项目
Jun 01 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调用dll的实例操作动画与代码分享
2012/08/14 PHP
destoon官方标签大全
2014/06/20 PHP
html 锁定页面(js遮罩层弹出div效果)
2009/10/27 Javascript
自定义右键属性覆盖浏览器默认右键行为实现代码
2013/02/02 Javascript
js绑定事件this指向发生改变的问题解决方法
2013/04/23 Javascript
js实现的map方法示例代码
2014/01/13 Javascript
javascript学习笔记(四)function函数部分
2014/09/30 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
2015/02/03 Javascript
JavaScript+CSS实现的可折叠二级菜单实例
2016/02/29 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
AngularJS教程之环境设置
2016/08/16 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
js 获取json数组里面数组的长度实例
2017/10/31 Javascript
NodeJS模块与ES6模块系统语法及注意点详解
2019/01/04 NodeJs
JavaScript实现模态对话框实例
2020/01/13 Javascript
ES6 十大特性简介
2020/12/09 Javascript
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
Python断言assert的用法代码解析
2018/02/03 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
python爬取指定微信公众号文章
2018/12/20 Python
Python实现正则表达式匹配任意的邮箱方法
2018/12/20 Python
对python以16进制打印字节数组的方法详解
2019/01/24 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
2019/08/01 Python
python3 xpath和requests应用详解
2020/03/06 Python
使用CSS禁止textarea调整大小功能的方法
2015/03/13 HTML / CSS
岗位职责的定义
2013/11/10 职场文书
舞蹈教育学专业推荐信
2013/11/27 职场文书
成品仓管员工作职责
2013/12/29 职场文书
《最后的姿势》教学反思
2014/02/27 职场文书
毕业设计说明书
2014/05/07 职场文书
数学系毕业生求职信
2014/05/29 职场文书
乳制品整治工作方案
2014/05/29 职场文书
终止解除劳动合同证明书
2015/06/17 职场文书
python将图片转为矢量图的方法步骤
2021/03/30 Python
Mysql案例刨析事务隔离级别
2021/09/25 MySQL