函数 |
描述 | 参数 | 返回值 | 示例 | random.random() |
生成一个[0, 1)之间的随机浮点数。
| 无 | 浮点数 | print(random.random()) | random.uniform(a, b) |
生成一个[a, b]之间的随机浮点数。
| a:下限,b:上限 | 浮点数 | print(random.uniform(5, 10)) | random.randint(a, b) |
生成一个[a, b]之间的随机整数。
| a:下限,b:上限 | 整数 | print(random.randint(1, 10)) | random.randrange(start, stop, step) |
生成一个从start到stop(不包括stop)以step为步长的随机整数。
| start:起始值,stop:结束值(不包括),step:步长 | 整数 | print(random.randrange(1, 10, 2)) | random.choice(sequence) |
从序列中随机选择一个元素。
| sequence:序列 | 序列元素 | print(random.choice(['apple', 'banana', 'orange'])) | random.sample(population, k) |
从population中随机选择k个元素,并返回一个新的列表。
| population:总体,k:样本大小 | 列表 | print(random.sample(range(10), 3)) | random.shuffle(x) |
随机打乱列表x中的元素。
| x:列表 | 无 | numbers = [1, 2, 3, 4, 5] random.shuffle(numbers) print(numbers) | Python 中的随机函数: 专业角度解读
Python 的 random 模块提供了丰富的随机数生成函数,适用于各种应用场景,如模拟、游戏开发、数据分析等。
核心概念
伪随机数: random 模块生成的随机数并非真正的随机数,而是通过算法计算得到的伪随机数。
这些算法使用一个“种子”值(默认是当前时间)作为起点,根据固定的数学公式生成看似随机的数字序列。
可重现性: 如果使用相同的“种子”值,可以生成相同的随机数序列。
这在测试和调试程序时非常有用。
主要函数
random.random(): 生成一个介于 0 和 1 之间的随机浮点数,但不包括 1。
random.uniform(a, b): 生成一个介于 a 和 b 之间的随机浮点数,包括 a 和 b。
random.randint(a, b): 生成一个介于 a 和 b 之间的随机整数,包括 a 和 b。
random.randrange(start, stop, step): 从 start 到 stop(不包括 stop)以 step 为步长生成一个随机整数。
random.choice(sequence): 从序列中随机选择一个元素。
random.sample(population, k): 从总体中随机选择 k 个元素,并返回一个新的列表。
random.shuffle(x): 随机打乱列表 x 中的元素。
使用案例
模拟掷骰子: print(random.randint(1, 6))
随机生成用户名: print(random.choice(['alice', 'bob', 'charlie']))
模拟随机事件: if random.random() < 0.5: print("事件发生")
随机选择数据样本: print(random.sample(range(100), 10))
打乱数据顺序: random.shuffle(data)
注意事项
对于需要高度随机性的应用,如密码生成或加密,使用 secrets 模块更为安全。
在实际应用中,选择合适的随机数生成函数,并根据需要设置适当的种子值。
通过理解这些概念和函数,你可以利用 Python 的随机数生成功能来进行各种有趣的模拟、游戏开发和数据处理。