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中使用urllib2获取http请求状态码的代码例子
Jul 07 Python
Python全局变量操作详解
Apr 14 Python
python中字典(Dictionary)用法实例详解
May 30 Python
Python Paramiko模块的安装与使用详解
Nov 18 Python
在PyCharm下使用 ipython 交互式编程的方法
Jan 17 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
Feb 17 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
May 16 Python
Python函数中的可变长参数详解
Sep 12 Python
如何更改 pandas dataframe 中两列的位置
Dec 27 Python
Python socket聊天脚本代码实例
Jan 02 Python
tensorflow使用CNN分析mnist手写体数字数据集
Jun 17 Python
Python Flask实现进度条
May 11 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实现分页的一个示例
2006/10/09 PHP
php中批量删除Mysql中相同前缀的数据表的代码
2011/07/01 PHP
php 团购折扣计算公式
2011/11/24 PHP
PHPMailer邮件发送的实现代码
2013/05/04 PHP
php中使用gd库实现远程图片下载实例
2015/05/12 PHP
zen cart实现订单中增加paypal中预留电话的方法
2016/07/12 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
2016/12/02 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
laravel 解决crontab不执行的问题
2019/10/22 PHP
javascript据option的value值快速设定初始的selected选项
2007/08/13 Javascript
js 函数的执行环境和作用域链的深入解析
2009/11/01 Javascript
JavaScript 原型与继承说明
2010/06/09 Javascript
JavaScript版DateAdd和DateDiff函数代码
2012/03/01 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
laydate.js日期时间选择插件
2017/01/04 Javascript
[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
2018/02/14 Javascript
angular 服务的单例模式(依赖注入模式下)详解
2018/10/22 Javascript
微信小程序实现侧边分类栏
2019/10/21 Javascript
复制粘贴功能的Python程序
2008/04/04 Python
Windows下安装python MySQLdb遇到的问题及解决方法
2017/03/16 Python
Jupyter notebook远程访问服务器的方法
2018/05/24 Python
selenium2.0中常用的python函数汇总
2019/08/05 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
2019/12/04 Python
python实现可下载音乐的音乐播放器
2020/02/25 Python
ubuntu 安装pyqt5和卸载pyQt5的方法
2020/03/24 Python
python计算Content-MD5并获取文件的Content-MD5值方式
2020/04/03 Python
Python如何实现远程方法调用
2020/08/07 Python
python将数据插入数据库的代码分享
2020/08/16 Python
css3 给页面加个半圆形导航条主要利用旋转和倾斜样式
2014/02/10 HTML / CSS
输入N,打印N*N矩阵
2012/02/20 面试题
六月份红领巾广播稿
2014/02/03 职场文书
教师师德师风整改措施
2014/10/24 职场文书
研究生简历自我评
2015/03/11 职场文书
2015年大学生工作总结
2015/04/21 职场文书
2016年教师反腐倡廉心得体会
2016/01/13 职场文书
Python first-order-model实现让照片动起来
2022/06/25 Python