
python之random模块
发布日期:2021-05-04 19:07:29
浏览次数:27
分类:原创文章
本文共 2553 字,大约阅读时间需要 8 分钟。
python之random模块
文章目录
引入
什么是 random 模块
- random 模块是 Python的内置模块
- random 主要用来生成随机数
一、random 模块七种基本用法介绍
1.random( )
-
只能生成大于 0 且小于 1 之间的小数 (float类型)
import randomprint(random.random()) # 0.445551017368668print(random.random()) # 0.09191193089709782
2.uniform( )
- 生成指定数值之间的小数 (float)
#由random.random()的扩展因为其不能指定参数。而random.uniform(1, 3)指定了一到三之间的浮点数, (注意: 返回浮点数。不包括一和三)import randomprint(random.uniform(1,3)) # 1.8079224989194222print(random.uniform(1,3)) # 2.2382904648981112
3.randint( )
- 生成指定数值之间的整数 (int类型)
import random# 生成大于等于 2 且小于等于 5 之间的整数 (包括2,包括5, 表示的是开区间)print(random.randint(2,5)) # 3print(random.randint(2,5)) # 2print(random.randint(2,5)) # 3
4.randrange( )
- 生成指定数值之间的整数 (顾头不顾尾)
import random# 生成大于等于 2 且小于 5 之间的整数(顾头不顾尾和range一样取不到5)print(random.randrange(2,5)) # 4print(random.randrange(2,5)) # 3print(random.randrange(2,5)) # 4
5.choice( )
- 从你指定的列表里面随机取出一个值
import randomres = random.choice([1,'23',[4,5]])print(res,type(res))'''多次输出后的结果23 <class 'str'>1 <class 'int'>[4, 5] <class 'list'>'''
6.sample( )
- 从你指定的列表里面随机取出你指定个数的元素组合
import randomres = random.sample([1,2,3,'23',[4,5]],2) # 从列表里随机取出 2 个元素组合print(res,type(res)) # [[4, 5], '23'] <class 'list'> (存放在一个列表里)res = random.sample([1,2,3,'23',[4,5]],3) # # 从列表里随机取出 3 个元素组合print(res,type(res)) # ['23', 1, 2] <class 'list'>
7.shuffle( )
- 将列表里面元素的顺序打乱, 相当于洗牌 (只能传入列表)
import randomitem = [1,2,3,4,5]random.shuffle(item) # 随机打乱item这个列表中元素的顺序。print(item) # [4, 5, 1, 2, 3]
二、随机生成验证码
1.储备知识
- 小写字母
a-z
对应的十进制是97-122
- 大写字母
A-Z
对应的十进制是65-90
- chr(num) : 将传入的一个十进制转换成对应的 ASCII 码表中的一个字符
- ord(‘A-z’) : 将传入的一个 ASCII 码中的一个字符转换成对应的十进制
2.生成指定位数的验证码, 含大小写英文和数字
import randomdef auth_code(count=6): res = '' for i in range(count): lower = chr(random.randint(97,122)) # 随机小写字母 upper = chr(random.randint(65,90)) # 随机大写字母 num = str(random.randint(0,9)) # 随机数字 res2 = random.choice([lower,upper,num]) # 三者之间随机取走一个 res += res2 # 字符拼接 return resprint(auth_code(6)) # tmvp60print(auth_code(6)) # Bl7h51print(auth_code(6)) # Y9xa33print(auth_code(6)) # 787zR3
3.优化版本
- 上一个版本是字符拼接, 会重复新建内存空间, 造成一定的资源占用
- 优化版本使用列表来接收值, 内存空间不重复申请, 再使用 join 将列表拼成字符串
import randomdef auth_code(count=6): l = [] for i in range(count): lower = chr(random.randint(97, 122)) upper = chr(random.randint(65,90)) num = str(random.randint(0,9)) res2 = random.choice([lower,upper,num]) l.append(res2) return "".join(l)print(auth_code()) # 6O22ylprint(auth_code()) # g24X4uprint(auth_code()) # 0V220Pprint(auth_code()) # 9sgnO8
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年03月26日 00时17分05秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
血色先锋队
2019-03-04
21年寒假第一周周练/HDU1176:免费馅饼
2019-03-04
数据结构——最小支撑树
2019-03-04
win10系统安装配置Go环境包(第0章)
2019-03-04
K8S实战之理解Pod
2019-03-04
Prime Ring Problem-dfs
2019-03-04
k8s实战之理解helm
2019-03-04
历届试题 日期问题
2019-03-04
如何搭建MFS分布式文件系统
2019-03-04
如何搭建MFS分布式文件系统(二)
2019-03-04
搭建samba服务器
2019-03-04
微信小程序开发工具
2019-03-04
python第三章
2019-03-04
五一快乐训练
2019-03-04
JS中的对象和函数基础
2019-03-04
第三章:数据查询语言DQL-自连接查询的场景及使用
2019-03-04
第三章:常见的基础数据结构-字符串切片的使用
2019-03-04
第六章:多线程-线程安全问题
2019-03-04
Java: 错误: 不支持发行版本 5
2019-03-04