目录
🔍 一、引言
目标读者:Python开发者 / 数据分析初学者
核心价值:掌握random.uniform
的用法,快速生成均匀分布随机数
📌 二、函数定义与参数说明
✅ 函数定义
random.uniform(a, b)
- 功能:生成
[a, b]
区间的随机浮点数 - 返回值:均匀分布的浮点数(如
5.67890123456789
)
⚙️ 参数说明
参数 | 描述 | 示例 |
---|---|---|
a | 下限(整数/浮点数) | 1 |
b | 上限(整数/浮点数) | 10 |
自动处理 | 若 a > b ,自动交换为 [min(a,b), max(a,b)] | random.uniform(10, 1) → 实际范围 [1, 10] |
🧪 三、使用示例
1️⃣ 生成单个随机数
import random
num = random.uniform(1, 10) # 输出示例:5.67890123456789
print("随机数:", num)
2️⃣ 生成多个随机数
numbers = [random.uniform(-5, 5) for _ in range(5)]
# 输出示例:[-2.345, 4.123, -0.456, 3.789, -1.234]
print("随机数列表:", numbers)
3️⃣ 生成二维坐标
coordinates = [(random.uniform(0, 100), random.uniform(0, 50)) for _ in range(10)]
# 输出示例:[(12.34, 23.45), (67.89, 45.67), ...]
print("随机坐标:", coordinates)
🎯 四、应用场景
🧪 模拟实验
temperature = random.uniform(20, 30) # 模拟温度传感器读数
print("当前温度:", temperature, "°C")
📊 数据采样
sample_data = [random.uniform(0, 1) for _ in range(1000)] # 生成1000个随机数
🎮 游戏开发
event_prob = random.uniform(0, 1)
if event_prob < 0.1:
print("触发稀有事件!")
⚠️ 五、注意事项
1. 边界值处理
- 包含边界:
random.uniform(1, 10)
会包含1
和10
- 排除边界:手动调整范围(如
random.uniform(1+ε, 10-ε)
)
2. 生成整数
random_int = int(random.uniform(1, 10)) # 输出示例:7
3. 伪随机数的性质
random.seed(42) # 设置种子以保证结果可复现
print("随机数:", random.uniform(0, 1)) # 输出:0.6394267984578837
❓ 六、常见问题解答
Q1: 能否生成负数?
✅ A: 可以,如 random.uniform(-10, 10)
会生成 -10 到 10 之间的随机数
Q2: 如何生成整数?
✅ A: 使用 int()
转换,如 int(random.uniform(1, 10))
Q3: random.uniform
和 numpy.random.uniform
的区别?
工具 | 特点 | 适用场景 |
---|---|---|
random.uniform | Python标准库 | 小规模数据生成 |
numpy.random.uniform | NumPy库 | 大规模数组生成(性能更高) |
📈 七、总结
核心知识点 | 图标 |
---|---|
生成均匀分布随机数 | ✅ |
支持负数/整数/浮点数 | 🔁 |
自动处理a > b的情况 | ⚙️ |
伪随机数需设置种子 | 🔐 |