当前位置:首页>python>Python基础学习手册第13章:random随机库的运用,验证码,抽奖,抽签,随机密码等案例实战

Python基础学习手册第13章:random随机库的运用,验证码,抽奖,抽签,随机密码等案例实战

  • 2026-09-10 18:19:54
Python基础学习手册第13章:random随机库的运用,验证码,抽奖,抽签,随机密码等案例实战
前面我们已经掌握了很多基础知识
可以说,整个基础模块,所需要掌握的知识点已经差不多
大家都会了
今天,这一章内容是非常有趣且实用的
关于我们的随机库random的一个使用学习
今天就不设置知识点目录了📚
大多数还是伴随着我们已经掌握的各个基础知识点的一个穿插使用
所以接下来我们就进入学习了
📚关于random库
random库 是 Python本身内置的标准库之一,不需要我们去额外下载安装和部署
直接导入库即可使用
🖥️代码实战:
两种不同的导库方式,目前遇见的最常用的就是第一种导库方式
# 第1种:导入整个库(新手推荐,不易出错,用法统一)import random# 第2种:导入指定函数(代码更简洁,适合熟练后使用)from random import randint, choice
✍️常用的整数随机数
使用频率最多的功能,像猜数字、抽奖、随机类的很多时候都是它
✍️第1种:
格式:random.randint (a, b)  : a和b也是包含在随机范围内的
🖥️代码实战:
# 生成1-100之间的随机整数,包含1和100num = random.randint(1, 100)print(num)  # 经典猜数字游戏核心代码answer = random.randint(1, 100)print("猜数字游戏!数字范围1-100,快试试吧")
✍️第2种:
格式:random.randrange (start, stop, step):带步长的随机整数
规则和 range () 完全一致
范围:包头不包尾
# 生成0-10之间的随机偶数(步长2)n = random.randrange(0, 11, 2)print(n) # 生成1-10之间的随机奇数m = random.randrange(1, 10, 2)print(m)  
💡对比表:
函数
取值范围
步长设置
核心优势
使用场景
randint(a, b)
a, b都包含
不支持
用法简单
普通随机整数、猜数字、抽奖等常用
randrange(start, stop, step)
包含开始,不包含结束
支持
可按规律生成随机数
随机偶数和奇数、固定间隔的随机数等
📚序列随机操作
✍️第1种:
random.choice (序列):随机抽取 1 个元素
从列表、元组、字符串中随机抽取 1 个元素,适合随机点名、抽签
(经常会被我用来在课堂上进行随机点名回答问题
孩子们也会觉得特别有意思,哈哈)
🖥️代码实战:
# 课堂随机点名name_lst = ["小明", "小红", "小刚", "小丽", "小亮"]name = random.choice(name_lst)print(f"被点到的同学是:{name}")# 随机抽取一个字母y = random.choice("abcdefghijklmn")print(f"随机字母:{y}")
✍️第2种:
random.choices (序列,k = 数量,weights = 权重):可重复抽取多个元素
从序列中随机抽取多个元素,允许重复,支持设置权重(概率),适合带概率的抽奖、多轮重复抽取
(这种玩法就很有意思了,开启脑洞想一想)
🖥️代码实战:
# 重复抽取3个中奖者,允许重复中奖name_lst = ["小明", "小红", "小刚", "小丽", "小亮"]name = random.choices(name_lst, k=3)print(f"重复中奖名单:{name}")# 带权重的抽奖:一等奖10%,二等奖30%,三等奖60%lst = ["一等奖", "二等奖", "三等奖"]weights = [10, 30, 60]  # 权重为相对比例,无需总和为100result = random.choices(lst, weights=weights, k=1)print(f"抽奖结果:{result[0]}")
✍️第3种:

random.sample (序列,k = 数量):不重复抽取多个元素

从序列中随机抽取多个不重复的元素,k 值不能超过序列的总长度,适合不重复抽奖、验证码生成等

(例如彩票站的机选,就是每一组里的7个数字等,都是不重复)

🖥️代码实战:
# 抽3个不重复的中奖者,每人仅能中奖1次lst = ["小A", "小B", "小C", "小D", "小E"]n = random.sample(lst, k=3)print(f"不重复中奖名单:{n}")# 随机生成4位不重复的数字验证码c = random.sample("0123456789", k=4)c1 = "".join(c)  # 拼接字符 print(f"4位数字验证码:{c1}")
random.seed(数字):
设置随机数种子,种子数字固定后,后续生成的随机数序列就会完全固定,结果可复现的
🖥️代码实战:
# 不设置种子,每次运行结果都不一样print(random.randint(1, 100))print(random.randint(1, 100))# 设置种子,每次运行结果完全一致random.seed(666)  # 种子数字可自定义,固定数字就固定结果print(random.randint(1, 100))  # 每次运行都是固定值print(random.randint(1, 100))  # 每次运行都是固定值
⌨️好玩案例:
✍️案例1:年会抽奖小程序(不重复中奖)
import random# 参与抽奖的人员名单lst = ["A", "B", "C", "D", "E", "F", "G", "H", "J"]# 剩余抽奖名单(避免重复中奖)lst_1 = lst.copy()# 抽一等奖d1 = random.sample(lst_1, k=1)print(f"一等奖中奖名单:{d1}")# 从剩余名单中删除已中奖人员for name in d1:        lst_1.remove(name)# 抽二等奖d2 = random.sample(lst_1, k=3)print(f"二等奖中奖名单:{d2}")for name in d2:        lst_1.remove(name)# 抽三等奖d3 = random.sample(lst_1, k=5)print(f"三等奖中奖名单:{d3}")
✍️案例2:数字 + 字母 混合验证码生成
import random# 验证码字符库:数字+大小写字母n = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"# 随机抽取4个不重复的字符sn = random.sample(n, k=4)# 拼接成字符串code = "".join(sn)print(f"4位混合验证码:{code}")
✍️案例3:随机8位强度密码生成
import random# 密码字符库:数字+大小写字母+特殊符号m1 = "abcdefghijklmnopqrstuvwxyz"m2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"m3 = "0123456789"m4 = "!@#$%^&*()"# 密码规则:至少2个大写、2个小写、2个数字、2个特殊符号password = []password += random.sample(m1, 2)password += random.sample(m2, 2)password += random.sample(m3, 2)password += random.sample(m4, 2)# 打乱密码顺序random.shuffle(password)# 拼接最终密码password_new = "".join(password)print(f"8位强密码:{password_new}")
💡如果各位同学有任何好的想法,也可以评论交流~
✌️,那么今天关于随机库random的运用,讲解到这里就学习结束了✌️
你们学会了吗❓️
要好好练习,多写才能熟能生巧
文章底部有往期文章哦⬇️
如果觉得有用的话,点个赞👍,转发给身边的朋友👬,你们的认可是我的动力,只有更多的兴趣相同的人看见,才会碰撞出不同的思维火花🔥
有任何问题欢迎评论留言
🖥️小练习:
完成一个猜数字的小游戏
在1--100中生成一个随机数字(玩家不可见)
玩家有8次机会
如果猜对了则显示     ‘恭喜,太棒了’
猜错了怎需要判断玩家的数字是猜大了还是猜小了
然后对应提示
‘猜大了’或者‘猜小了’
如果机会用完了,还没有猜中,则显示‘很遗憾,失败了’,并
结束游戏
往期文章点这里⬇️:
Python基础学习手册数据模块总结:一张表格对比列表,元组,字典,集合以及集合6个使用场景(重点)
Python基础学习手册第10章:字典(dict)的数据类型增、删、改、查,遍历、嵌套等方法一文详解
Python基础学习手册第9章:列表 (List) 保姆级教程,增、删、改、查 和 排序等操作 ,实战一篇全搞定
Python基础学习手册第8章:搭配字符串的常用函数学习,三个案例了解:判断年月、敏感词打码以及何为自守数
Python基础学习手册第7章:字符串的索引 、 切片 等常用方法的学习掌握

最新文章

随机文章