一、random模块的介绍
Python自带的random模块为生成伪随机数提供了支持。random模块的重要函数有:randint、random、uniform、choice、shuffle等,可以生成整数、浮点数、列表等不同类型的随机数。
其中randint(a, b)是生成a到b之间的整数;random()是生成0~1之间的随机小数;uniform(a, b)是生成a到b范围内的随机小数;choice(seq)可以在seq序列中随机选择一个元素;shuffle(seq)可以随机打乱seq序列。
import random
# 生成10以内的随机整数
randint_num = random.randint(0, 10)
print(randint_num)
# 生成0~1之间的随机小数
random_num = random.random()
print(random_num)
# 生成1000~2000之间的随机小数
uniform_num = random.uniform(1000, 2000)
print(uniform_num)
# 在列表中随机选择一个元素
my_list = [1, 2, 3, 4, 5]
random_choice = random.choice(my_list)
print(random_choice)
# 随机打乱列表
random.shuffle(my_list)
print(my_list)
二、应用场景一:生成验证码
验证码是用于保障用户信息安全的常见手段之一。在网站注册、登录、找回密码等环节,都需要输入验证码进行验证。
利用random模块可以很方便地生成随机数字、字母等组成的验证码。下面是一个随机生成6位数字的验证码的实现。
import random
def get_verification_code(length=6):
code = ''
for i in range(length):
code += str(random.randint(0, 9))
return code
print(get_verification_code())
三、应用场景二:抽奖活动
在一些抽奖活动中,需要随机从参与者中抽取中奖者。利用random模块可以很方便地完成抽奖活动。
下面是一个抽取10个中奖者的实现,其中为了简化程序,参与者的名字用1~100代替。
import random
# 构造100个参与者的名单
participant_list = list(range(1, 101))
# 随机抽取10个中奖者
winner_list = random.sample(participant_list, 10)
print(winner_list)
四、应用场景三:随机密码生成器
在密码的开发过程中,需要随机生成一些字符串作为初始密码。利用random模块可以生成一定长度的随机字符串。
下面是一个随机生成10位由数字、字母组成的密码的实现。
import random
import string
def get_random_password(length=10):
password = ''
for i in range(length):
# 在数字、字母中随机生成字符
password += random.choice(string.digits + string.ascii_letters)
return password
print(get_random_password())