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 网络编程起步(Socket发送消息)
Sep 06 Python
python模拟登录百度代码分享(获取百度贴吧等级)
Dec 27 Python
详解Python里使用正则表达式的ASCII模式
Nov 02 Python
Python中字典的浅拷贝与深拷贝用法实例分析
Jan 02 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
Jan 16 Python
Python动态生成多维数组的方法示例
Aug 09 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
Oct 15 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
Nov 07 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
Mar 06 Python
python批量修改交换机密码的示例
Sep 22 Python
python实现xml转json文件的示例代码
Dec 30 Python
pytorch 梯度NAN异常值的解决方案
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
一个可以删除字符串中HTML标记的PHP函数
2006/10/09 PHP
PHP中shuffle数组值随便排序函数用法
2014/11/21 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
2015/12/24 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
2019/06/03 PHP
PHP针对redis常用操作实例详解
2019/08/17 PHP
PHP7生产环境队列Beanstalkd用法详解
2020/05/19 PHP
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
jquery实现的鼠标拖动排序Li或Table
2014/05/04 Javascript
Jquery 效果使用详解
2015/11/23 Javascript
在JavaScript中call()与apply()区别
2016/01/22 Javascript
Node.js如何自动审核团队的代码
2016/07/20 Javascript
javascript创建含数字字母的随机字符串方法总结
2016/08/01 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
2017/03/03 Javascript
vue中使用protobuf的过程记录
2018/10/26 Javascript
vue slot与传参实例代码讲解
2019/04/28 Javascript
[48:48]完美世界DOTA2联赛PWL S3 Magama vs GXR 第一场 12.19
2020/12/24 DOTA
教你安装python Django(图文)
2013/11/04 Python
跟老齐学Python之做一个小游戏
2014/09/28 Python
Python的设计模式编程入门指南
2015/04/02 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
2017/06/07 Python
Python2.7编程中SQLite3基本操作方法示例
2017/08/09 Python
详解Python 正则表达式模块
2018/11/05 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
Django框架实现的普通登录案例【使用POST方法】
2019/05/15 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
css3强大的动画效果animate使用说明及浏览器兼容介绍
2013/01/09 HTML / CSS
使用CSS实现弹性视频html5案例实践
2012/12/26 HTML / CSS
美国最大的城市服装和运动鞋零售商:Jimmy Jazz
2016/11/19 全球购物
亚洲最大的眼镜批发商和零售商之一:Glasseslit
2018/10/08 全球购物
英国最大的滑板品牌选择:Route One
2019/09/22 全球购物
关于学习的演讲稿
2014/05/10 职场文书
写得不错的求职信范文
2014/07/11 职场文书
先进基层党组织事迹材料
2014/12/25 职场文书
董事长开业致辞
2015/07/29 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
向Spring IOC 容器动态注册bean实现方式
2022/07/15 Java/Android