在 Python 中生成随机数主要使用内置的 random 模块,以下是常见用法及示例

1. 基础随机数生成

import random

# 生成 [0.0, 1.0) 之间的随机浮点数
rand_float = random.random()
print(rand_float)  # 示例输出: 0.548813502

# 生成 [a, b] 之间的随机整数
rand_int = random.randint(1, 10)  # 包含 1 和 10
print(rand_int)    # 示例输出: 7

# 生成 [a, b) 之间的随机浮点数
rand_uniform = random.uniform(1.5, 5.5)
print(rand_uniform)  # 示例输出: 3.827533

2. 高级随机操作

import random

# 从序列中随机选择一个元素
fruits = ["苹果", "香蕉", "橙子", "芒果"]
choice_fruit = random.choice(fruits)
print(choice_fruit)  # 示例输出: "香蕉"

# 随机打乱序列(原地修改)
cards = ["A", "K", "Q", "J", 10]
random.shuffle(cards)
print(cards)  # 示例输出: ["Q", 10, "A", "J", "K"]

# 从序列中随机抽取 k 个不重复元素
sample_nums = random.sample(range(1, 100), 5)
print(sample_nums)  # 示例输出: [42, 17, 88, 3, 76]

3. 设置随机种子(可复现结果)

import random

# 设置种子后,每次运行结果相同
random.seed(42)  # 任意整数

print(random.randint(1, 100))  # 总是输出 82
print(random.random())         # 总是输出 0.639426798

4. 安全随机数(加密场景)

#使用 secrets 模块生成密码学安全的随机数:
import secrets

# 生成 [0, 255] 的安全随机整数
secure_num = secrets.randbelow(256)
print(secure_num)

# 生成 16 字节的安全随机 token
token = secrets.token_hex(16)  # 32位十六进制字符串
print(token)  # 示例: 5f8c2d...e4a

5. 高效生成随机数组(NumPy)

import numpy as np

# 生成 3x3 的 [0,1) 随机浮点数矩阵
rand_matrix = np.random.rand(3, 3)
print(rand_matrix)

# 生成 [10, 20) 的 5 个整数
rand_ints = np.random.randint(10, 20, size=5)
print(rand_ints)  # 示例: [14 11 18 12 19]

关键区别说明

方法特点适用场景
random.random()快速生成简单浮点数一般随机需求
random.randint()包含两端整数随机整数
secrets 模块密码学安全密钥/令牌生成
numpy.random高效生成数组科学计算/大数据
设置 seed()结果可复现实验调试