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

发布时间:2023-05-12

一、random模块的介绍

Python自带的random模块为生成伪随机数提供了支持。random模块的重要函数有:randintrandomuniformchoiceshuffle等,可以生成整数、浮点数、列表等不同类型的随机数。 其中:

  • 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())