Python随机函数库random的使用
众所周知,python拥有丰富的内置库,还支持众多的第三方库,被称为胶水语言,随机函数库random,就是python自带的标准库,他的用法极为广泛,除了生成比较简单的随机数外,还有很多功能。使用random库:
import random
random库主要函数:
函数名 | 说明 | 用法 |
---|---|---|
random() | 生成一个0~1之间的随机浮点数,范围 0 <= n < 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)
文件里的内容,也可以写成很多行,上面代码字符串分割时改动一下即可。
运行结果(可以多运行几遍看一下效果):
数据: 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- perprint('%.2f'%per)else:print('%.2f'%total)red_packet(10,5)
运行结果:
1.89
0.11
3.85
1.08
3.07
同样,多运行几次试试,会不一样。
3、string和random组合使用,随机验证码的生成。
import random,string
def gen_random_string(str_len):""":param str_len: 输入需要几位的字符串:return: """random_char = string.digits+string.ascii_lettersgen_char=random.sample(random_char,str_len)gen_random_str=''.join(gen_char)return gen_random_strprint(gen_random_string(4))
运行结果:
2TdH
以上只是random库的简单使用,当然还有很多其他的用法,大家可以去自己学习,一定要动手去实践哦!
Python随机函数库random的使用相关推荐
- python标准库random中函数的作用_Python随机函数库random的使用方法详解
Python随机函数库random的使用方法详解 前言 众所周知,python拥有丰富的内置库,还支持众多的第三方库,被称为胶水语言,随机函数库random,就是python自带的标准库,他的用法极为 ...
- [Python标准库]random——伪随机数生成器
Python 版本:1.4 及以后版本 random 模块基于 Mersenne Twister 算法提供了一个快速伪随机数生成器.原先开发这个生成器是为了向蒙特卡洛模拟生成输入,Me ...
- Python标准库random用法精要
random标准库主要提供了伪随机数生成函数和相关的类,同时也提供了SystemRandom类(也可以直接使用os.urandom()函数)来支持生成加密级别要求的不可再现伪随机数序列. 1.rand ...
- python标准库random的方法randint_Python标准库Random
基本方法 获取一个[0,1)的随机浮点数: import random print(random.random()) #输出 0.6701488343121276 获取指定区间的随机浮点数: impo ...
- Python爬虫笔记——随机函数(random,uniform,randint,randrange,shuffle,sample)
random() random()方法:返回随机生成的一个实数,它在[0,1)范围内 运用random()方法的语法: import random #random()方法不能直接访问,需要导入rand ...
- python random包含尾部吗_Python标准库random的方法randint(m,n)用来生成一个[m,n]区间上的随机整数。...
[判断题]已知列表 x = [1, 2, 3],那么执行语句 x = 3 之后,变量x的地址不变 [判断题]只能对列表进行切片操作,不能对元组和字符串进行切片操作 [单选题]Which is not ...
- 《python 题库集之基础练习》
一.单项选择题(本大题共10小题,每小题2分,共20分) 1.想用一个变量来表示出生年份,下列命名中( )项最可取.B A. b_y B. birth_year C. birthYear D. bir ...
- Python题库(含答案)
单项选择题 第一章python语法基础 1. Python 3.x 版本的保留字总数是C A 27 B 29 C 33 D 16 2.以下选项中,不是 Python 语言保留字的是C A whil ...
- Python中使用random随机函数与Matplotlib库绘制随机漫步图
Python中使用random随机函数与Matplotlib库绘制随机漫步图 一.概述 随机现象在我们的生活中并不少见,我们常见的一次抛硬币的正反面,股票的走势等等,都是随机事件.这些不确定性事件给我 ...
最新文章
- JZOJ 5163. 【NOIP2017模拟6.25】PS的烦恼
- Java知识点详解 6 注解
- Linux 修改静态 IP
- STM32固件升级之 hypertrm(超级终端)使用(三)
- 怎样在Excel中添加水印?学会这个方法可以轻松搞定
- 【Matplotlib:隐藏边框,显示单个网格线,设置刻度间隔,隐藏刻度线】
- 如何查看台式机计算机网络密码,如何在电脑上查找当前的WiFi网络密码
- transPlotR 优雅的绘制基因转录本结构
- 操作系统中的信号量及P、V操作
- MyBatis - 批量插入
- nargin与varnargin
- 项目质量管理之持续改进
- vue中的路由守卫(导航守卫)
- Eric Lippert推荐的C#书单
- 工具条研究手记(2) - 认识CToolBar工具条类
- SwitchResX for Mac 屏幕分辨率修改工具
- C语言面试考点之一(常见关键字)
- 初中动画flash作品_初中信息技术 Flash动画制作教案
- 基于java+ssm的校园自行车租赁买卖系统-计算机毕业设计
- 一文搞懂漏洞严重程度分析
热门文章
- 国内排名前几的客流统计系统公司有哪些?
- Leaflet使用介绍
- 广大网友们快来帮帮弱小的我把!!!!Eclipse做web项目删除用户,如果第一次用户id错误,则再输入就会出现404错误( 已解决!!!!)
- Gem5的FS(全系统)模拟
- fastapi获取访客真实ip
- zblog php获取文章的第一张图片,zblog调用文中第一张图片作为缩略图,博主亲测可用...
- [何以解忧唯有颓废]老舒
- Android阿拉伯语UI适配问题汇总
- 开放世界游戏中的大地图的实现——内容制作篇/异次元篇
- [清华大学]计算机科学与技术