Python 的 random
模块提供了生成随机数的函数,这些函数可以用于各种场景,如模拟、游戏开发、加密等。以下是 random
模块的一些常用功能和示例。
基本函数
-
random.seed(a=None, /)
- 初始化随机数生成器。如果提供相同的种子值,将生成相同的随机数序列。import random random.seed(1) # 设置随机数生成器的种子
-
random.getstate()
- 返回随机数生成器的内部状态。 -
random.setstate(state)
- 设置随机数生成器的内部状态。
随机浮点数
-
random.random()
- 返回一个在 [0.0, 1.0) 范围内的随机浮点数。rand_float = random.random()
-
random.uniform(a, b)
- 返回一个在 [a, b] 或 [b, a] 范围内的随机浮点数。rand_float = random.uniform(1.5, 4.5)
随机整数
-
random.randint(a, b)
- 返回一个在 [a, b] 范围内的随机整数。rand_int = random.randint(1, 10)
-
random.randrange(start, stop[, step])
- 从 range(start, stop, step) 返回一个随机选择的元素。rand_int = random.randrange(0, 101, 5) # 从0到100中随机选择一个5的倍数
随机选择和排列
-
random.choice(sequence)
- 从非空序列中返回一个随机选择的元素。element = random.choice(['apple', 'banana', 'cherry'])
-
random.choices(population, weights=None, *, cum_weights=None, random=None)
- 返回包含元素的列表,元素从population
中选择,选择的权重由weights
或cum_weights
指定。 -
random.sample(population, weights=None, *, random=None)
- 从population
中随机选择len(population)
个不重复的元素,返回一个新列表。sample = random.sample(range(100), 10) # 从0到99中随机选择10个不同的数字
-
random.shuffle(x[, random])
- 将序列x
中的元素随机打乱位置。list_items = [1, 2, 3, 4, 5] random.shuffle(list_items)
设置随机数生成器的随机源
-
random.getrandbits()
- 返回一个随机整数,其位数由参数指定。rand_bits = random.getrandbits(10) # 返回一个10位的随机整数
其他相关模块
-
secrets
- 用于生成密码和安全令牌的随机数生成器,比random
更安全。import secrets token = secrets.token_hex(16) # 生成一个16字节的随机十六进制字符串
-
numpy.random
- NumPy 库中的随机数生成模块,提供多维数组的随机数生成功能。import numpy as np rand_array = np.random.rand(2, 3) # 生成一个2x3的随机数组
使用 random
模块时,请注意,它生成的是伪随机数,适合非安全相关的应用。对于需要高安全性的场景,应使用 secrets
模块或专业的加密库。