目录
4、random.randrange(start, stop[, step])
7、random.sample(population, k)
8、random.choices(population, weights=None, *, cum_weights=None, k=1)
3、自定义一个随机数函数,许用户选择生成字符的类型(大写字母、小写字母、数字或它们的混合)以及生成字符串的长度
Python的random
模块是一个强大的工具,用于生成伪随机数,广泛应用于数据模拟、游戏开发、密码学(尽管对于安全敏感的应用需要使用更安全的随机数生成器,如secrets
模块)等领域。
一、常用函数
1、 random.random()
生成一个介于0到1之间(不含1)的随机浮点数(16位小数)。
import random
random_number = random.random()
print(random_number)
2、random.uniform(a, b)
生成一个指定范围内的随机浮点数,区间为[a, b)
。(16位小数)
import random
random_float = random.uniform(1, 10)
print(random_float)
3、random.randint(a, b)
生成一个指定范围内的随机整数,包括两端点。
import random
random_integer = random.randint(1, 100)
print(random_integer)
4、random.randrange(start, stop[, step])
从指定范围内,按指定步长生成一个随机整数,不包括结束值。
import random
random_choice = random.randrange(1, 10, 2) # 随机生成1到9之间的奇数
print(random_choice)
5、random.choice(sequence)
从序列(列表、元组、字符串等)中随机选择一个元素。
import random
my_list = [1, 'apple', 3.14, True]
random_element = random.choice(my_list)
print(random_element)
6、random.shuffle(x[, random])
将一个列表中的元素打乱。
import random
my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)
print(my_list)
7、random.sample(population, k)
从总体序列中选择k个随机且不重复的样本。
import random
sample = random.sample(range(1, 20), 5)
print(sample)
8、random.choices(population, weights=None, *, cum_weights=None, k=1)
从总体序列或集合中随机选取指定数量的唯一或重复项,可选配权重。
weights 和 cum_weights 不能同时传,只能选择一个来传。
-
population
: 这是一个必需的参数,表示你想要从中抽取元素的列表、元组、字符串或其他可迭代对象。 -
weights
(可选): 一个列表或元组,表示每个元素被抽中的相对概率。这个列表的长度必须与population
相同。如果未提供或为None
,则每个元素被选中的概率相等。
例如weights = [10, 5, 2, 1],首先,计算权重的总和:total = sum(weights) = 10 + 5 + 2 + 1 = 18
然后,每个元素 i 的概率 p_i 是它的权重 w_i 除以总和:p_i = w_i / total
所以,各个元素的概率分别是:
第一个元素的概率:p1 = 10 / 18 ≈ 0.556
第二个元素的概率:p2 = 5 / 18 ≈ 0.278
第三个元素的概率:p3 = 2 / 18 ≈ 0.111
第四个元素的概率:p4 = 1 / 18 ≈ 0.056
-
cum_