您的位置:

利用Python的random模块生成随机数

一、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())