Python启航:30天编程速成之旅(第21天)- random
喜欢的条友记得关注、点赞、转发、收藏,你们的支持就是我最大的动力源泉。
前期基础教程:
「Python3.11.0」手把手教你安装最新版Python运行环境
讲讲Python环境使用Pip命令快速下载各类库的方法
Python启航:30天编程速成之旅(第2天)-IDE安装
【Python教程】JupyterLab 开发环境安装
Python启航:30天编程速成之旅(第21天)- random
引言
random 是 Python 的一个标准库,提供了一系列函数来生成随机数和随机选择元素。今天将带领大家学习如何使用 random 模块中的各种函数来生成随机数、随机选择列表中的元素、打乱序列等。
导入random模块
首先,导入 random 模块:
import random
基本用法
生成随机整数
randint(a, b) 函数生成一个在 [a, b] 范围内的随机整数。
random_number = random.randint(1, 10)
print(random_number)
生成随机浮点数
random() 函数生成一个在 [0.0, 1.0) 范围内的随机浮点数。
random_float = random.random()
print(random_float)
生成指定范围内的随机浮点数
uniform(a, b) 函数生成一个在 [a, b] 范围内的随机浮点数。
random_uniform = random.uniform(1.0, 10.0)
print(random_uniform)
随机选择
从列表中随机选择一个元素
choice(seq) 函数从序列 seq 中随机选择一个元素。
items = ['apple', 'banana', 'cherry']
random_item = random.choice(items)
print(random_item)
从列表中随机选择多个元素
choices(population, k) 函数从 population 中随机选择 k 个元素,可以重复选择。
items = ['apple', 'banana', 'cherry']
random_items = random.choices(items, k=3)
print(random_items)
从列表中随机选择多个不重复的元素
sample(population, k) 函数从 population 中随机选择 k 个不重复的元素。
items = ['apple', 'banana', 'cherry', 'date', 'elderberry']
random_sample = random.sample(items, 3)
print(random_sample)
打乱序列
打乱列表中的元素顺序
shuffle(x) 函数就地打乱列表 x 中的元素顺序。
items = ['apple', 'banana', 'cherry', 'date', 'elderberry']
random.shuffle(items)
print(items)
随机权重选择
根据权重随机选择元素
choices(population, weights, k) 函数可以从 population 中根据 weights 列表中的权重随机选择 k 个元素。
items = ['apple', 'banana', 'cherry']
weights = [10, 1, 1]
random_weighted_choices = random.choices(items, weights, k=3)
print(random_weighted_choices)
随机种子
设置随机种子
seed(a=None, version=2) 函数用于设置随机数生成器的种子。相同的种子会产生相同的随机数序列。
random.seed(42)
random_number_1 = random.randint(1, 10)
print(random_number_1)
random.seed(42)
random_number_2 = random.randint(1, 10)
print(random_number_2)
高级用法
生成随机高斯分布
gauss(mu, sigma) 函数生成一个符合高斯分布(正态分布)的随机浮点数,均值为 mu,标准差为 sigma。
random_gaussian = random.gauss(0, 1)
print(random_gaussian)
生成随机三角分布
triangular(low, high, mode) 函数生成一个符合三角分布的随机浮点数,最小值为 low,最大值为 high,众数为 mode。
random_triangular = random.triangular(0, 10, 5)
print(random_triangular)
生成随机指数分布
expovariate(lambd) 函数生成一个符合指数分布的随机浮点数,参数 lambd 是速率参数。
random_exponential = random.expovariate(1.0)
print(random_exponential)
生成随机对数正态分布
lognormvariate(mu, sigma) 函数生成一个符合对数正态分布的随机浮点数,均值为 mu,标准差为 sigma。
random_lognormal = random.lognormvariate(0, 1)
print(random_lognormal)
实战示例
随机密码生成器
假设需要生成一个包含字母、数字和特殊字符的随机密码。
import random
import string
def generate_password(length=12):
characters = string.ascii_letters + string.digits + string.punctuation
password = ''.join(random.choices(characters, k=length))
return password
print(generate_password())
随机抽奖程序
假设需要从一个列表中随机抽取一个获奖者。
participants = ['Alice', 'Bob', 'Charlie', 'David', 'Eve']
winner = random.choice(participants)
print(f"The winner is: {winner}")
总结
通过本教程,相信大家已经学会了如何使用 Python 标准库 random 中的各种函数来生成随机数、随机选择元素、打乱序列等。random 模块提供了许多强大且灵活的工具,可以帮助我们处理各种随机性相关的任务。
喜欢的条友记得关注、点赞、转发、收藏,你们的支持就是我最大的动力源泉。