python之random随机数生成

作者: long | 2025-03-17

random模块是Python标准库的一部分,提供了多种生成随机数的函数。

随机数生成

random.random(): 生成一个[0.0, 1.0)范围内的随机浮点数。

import random
print(random.random())  # 输出:0.123456789 (示例)

random.uniform(a, b): 生成一个[a, b]范围内的随机浮点数。

print(random.uniform(1.5, 2.5))  # 输出:1.789 (示例)

序列操作

从非空序列中随机选择一个元素

random.choice(seq): 从非空序列中随机选择一个元素。

fruits = ["apple", "banana", "cherry"]
print(random.choice(fruits))  # 输出:"banana" (示例)

从序列中随机选择 k 个元素

random.choices(population, weights=None, k=1): 从序列中随机选择k个元素(可重复),weights可指定权重。

print(random.choices(fruits, k=2))  # 输出:["cherry", "apple"] (示例)

从序列中随机选择 k 个不重复的元素。

random.sample(population, k): 从序列中随机选择k个不重复的元素。

print(random.sample(fruits, 2))  # 输出:["banana", "cherry"] (示例)

将序列中的元素随机打乱

numbers = [1, 2, 3, 4, 5]
random.shuffle(numbers)
print(numbers)  # 输出:[3, 1, 5, 2, 4] (示例)

设置随机种子

print(random.random())  # 输出:0.6394267984578837

实际应用示例

随机密码生成

import string

def generate_password(length=8):
    characters = string.ascii_letters + string.digits + string.punctuation
    return ''.join(random.choices(characters, k=length))

print("Your password:", generate_password(10))

数据采样

data = list(range(100))
sample = random.sample(data, 10)
print("Sampled data:", sample)