python random模块详细使用

1 随机数范围在0~1之间
print(random.random())
输出结果:0.1509799409560172

2 随机数范围在a~b之间(包含a和b)
print(random.randint(0,10)) #可以理解为randint封装了random,返回random(a,b+1)
输出结果:4

3 choice、choices和sample用法
lst = [1,2,3,4,5,6,7,8,9]
print(random.choice(lst)) #从容器中选择1个随机数字
输出结果:1
print(random.choices(lst,k=3)) #从容器中选择3个随机数字,返回的是列表
输出结果:[3, 4, 4] #结果会重复
print(random.sample(lst,k=3)) #返回的也是列表
输出结果:[1, 2, 5] #结果不会重复

4 shuffle
lst = [1,2,3,4,5,6,7,8,9]
print(lst)
输出结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(lst) #洗牌,打乱顺序
print(lst)
输出结果:[8, 6, 5, 1, 9, 2, 4, 3, 7]

5 random应用场景:验证码接收
知识点:列表推导式:将字母和数字组合在一起; chr()函数:返回对应的ASCII值; join:将列表转化为字符串,但是不支持数字
lst = [str(i) for i in range(10)] + [chr(i) for i in range(65,91)] + [chr(i) for i in range(97,123)]
new_lst = random.sample(lst,k=4) #获取4位数的验证码
print(new_lst) #输出结果:['D', 't', '8', 'b']
str = "".join(new_lst) #通过join将列表转化为字符串
print(str) #输出结果:Dt8b
msg = input("请输入验证码:")
if str.upper() == msg.upper(): #将生成的验证码大写值与用户输入的验证码大写值比对
print("验证码输入正确!")
else:
print("验证码输入错误!")

posted @ 2022-06-09 15:16  laity_guan  阅读(104)  评论(0编辑  收藏  举报