文章
Python 中的 random
目录
Python 中的 random 模块提供了生成伪随机数的各种工具,广泛用于模拟、测试、游戏等场景。以下是 random 模块的常用使用方式:#
🔧 导入模块#
import random
📌 常用函数汇总#
1. 生成随机数#
random.random() # 返回 0.0 到 1.0 之间的随机浮点数
random.uniform(a, b) # 返回 a 到 b 之间的随机浮点数(可 a > b)
random.randint(a, b) # 返回 a 到 b 之间的随机整数(包含 a 和 b)
random.randrange(a, b, step) # 从 range(a, b, step) 中随机选一个数
2. 随机选择#
random.choice(seq) # 从序列中随机选一个元素
random.choices(seq, k=n) # 从序列中随机选择 n 个元素(可重复)
random.sample(seq, k=n) # 从序列中随机选 n 个不重复元素(原序列不变)
3. 打乱顺序#
random.shuffle(seq) # 原地打乱序列的顺序(列表类型)
4. 设置随机种子#
random.seed(42) # 设置种子,保证每次运行结果一致(用于调试或测试)
📌 示例代码#
import random
# 随机小数
print(random.random()) # e.g., 0.3744...
print(random.uniform(10, 20)) # e.g., 14.23
# 随机整数
print(random.randint(1, 6)) # e.g., 骰子模拟
print(random.randrange(0, 100, 10)) # e.g., 0, 10, ..., 90 之一
# 随机选择
items = ['apple', 'banana', 'cherry']
print(random.choice(items))
print(random.choices(items, k=5)) # 可重复
print(random.sample(items, k=2)) # 不重复
# 打乱顺序
random.shuffle(items)
print(items)
# 固定随机性
random.seed(123)
print(random.randint(1, 100)) # 每次运行都一样
📚 进阶:替代方案#
如果你需要更安全的随机性(如加密相关用途):
import secrets
secrets.randbelow(100) # 返回 0 ~ 99 的安全随机数
secrets.choice(['a', 'b', 'c']) # 安全地随机选择元素