在 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.8275332. 高级随机操作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.6394267984. 安全随机数(加密场景)#使用 secrets 模块生成密码学安全的随机数:
import secrets
# 生成 [0, 255] 的安全随机整数
secure_num = secrets.randbelow(256)
print(secure_num)
# 生成 16 字节的安全随机 token
token = secrets.token_hex(16) # 32位十六进制字符串
print(token) # 示例: 5f8c2d...e4a5. 高效生成随机数组(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()结果可复现实验调试