Python 常用模块random

random随机模块

【1】随即小数

import random# 范围大于0, 小于1
res = random.random()
print(res)  # 0.6931517079316227# 指定范围区间,两边都不可取等
res = random.uniform(2, 4)
print(res)  # 2.8478910746634534

【2】随机整数

import random# 指定区间, 两边都可取等
res = random.randint(1, 2)
print(res)  # 2# 指定范围区间,左闭右开, 指定步长
res = random.randrange(1, 3, 2)
print(res)  # 1

【3】随机选择返回

import randomchoice_list = ["tom", "lucy", "kan"]# 指定范围(列表、元组、集合等), 随机抽取一个
res = random.choice(choice_list)
print(res)  # kan# 指定范围(列表、元组、集合等), 随机抽取指定个数, 不会重复
res = random.sample(choice_list, 2)
print(res)  # ['kan', 'lucy']# 指定范围(列表、元组、集合等), 可以指定权重, 可以返回多个, 可以重复
res = random.choices(choice_list, weights=[3, 2, 1], k=2)
print(res)  # ['lucy', 'lucy']

【4】随机打乱列表顺序

import randomchoice_list = ["tom", "lucy", "kan"]
choice_set = {1, 2, 3, 4}
choice_tuple = (1, 2)# 只能打乱列表顺序
res = random.shuffle(choice_list)
print(res)  # kan# # 元组、字典报错
# res = random.shuffle(choice_tuple)
# res = random.shuffle(choice_set)

【5】应用(生成随机验证码)

import random
import stringdef generate_n_verify_code(n):# 生成数字、大写字母、小写字母的列表choice_list = (string.digits + string.ascii_uppercase + string.ascii_lowercase)# 随机可重复的抽取指定个数验证码verify_code_list = random.choices(choice_list, k=n)# 转换成字符串verify_code_str = "".join(verify_code_list)return verify_code_strprint(generate_n_verify_code(4))  # hPwz