Python中 random 的用法

生成随机数

random.random():生成一个0到1之间的随机实数

random.random() 函数生成的随机数是一个0到1之间的随机实数,包括0但不包括1。也就是说,返回值可能是0(闭区间)但不可能是1(开区间)。具体地说,随机数的取值范围为 [0, 1),即包含0但不包含1。

random.uniform(a, b):生成一个位于区间 [a, b] 内的随机实数

random.random() 函数不同,random.uniform(a, b) 函数生成的随机实数可能包含区间端点 ab。也就是说,返回值可能是 a(闭区间)或 b(闭区间),也可能是区间内的任何一个实数值。

random.randint(a, b):生成一个位于区间 [a, b] 内的随机整数

随机的整数可能包含区间端点 ab。也就是说,返回值可能是 a(闭区间)或 b(闭区间),也可能是区间内的任何一个整数值。

需要注意的是,每次运行 random 的函数都会生成一个不同的随机数。

随机挑选元素

random.choice(seq):随机挑选一个元素

random.choice(seq) 函数用于从非空序列 seq 中随机选择一个元素并返回。这个序列可以是一个列表、元组、字符串或其他序列类型。

import random

# 从列表中随机挑选一个元素
lst = [1, 2, 3, 4, 5, 6]
print(random.choice(lst))

random.choices(seq):随机挑选多个元素

random.choices(seq, k) 函数用于从序列 seq 中随机选择 k 个元素并返回一个列表。这个序列可以是一个列表、元组、字符串或其他序列类型。该函数允许重复选择元素,即可能选出的结果中包含重复的元素。

import random

my_list = [1, 2, 3, 4, 5, 6]
x = random.choices(my_list, k=3)
print(x)

运行上述代码可能会输出类似于 [2, 5, 5] 的结果,这是从 my_list 列表中随机选择的3个元素,其中元素 5 被选中了2次。

random.sample(seq, k):随机挑选多个不重复的元素

random.sample(seq, k) 函数用于从序列 seq 中随机选择 k 个不重复的元素并返回一个新的列表。这个序列可以是一个列表、元组、字符串或其他序列类型。

import random

lst = [1, 2, 3, 4, 5, 6]
# 从列表中随机挑选3个不重复的元素
print(random.sample(lst, 3))

随机打乱顺序

random.shuffle(seq):将序列中的元素随机排序

random.shuffle(seq) 函数用于将序列 seq 中的元素随机打乱顺序。这个序列可以是一个列表、元组或其他序列类型。例如,下面是一个使用 random.shuffle(seq) 函数将一个列表中的元素随机打乱顺序的示例代码:

import random

my_list = [1, 2, 3, 4, 5, 6]
random.shuffle(my_list)
print(my_list)

运行上述代码可能会输出类似于 [6, 1, 5, 2, 3, 4] 的结果,这是将 my_list 列表中的元素随机打乱顺序后的结果。

需要注意的是,random.shuffle(seq) 函数会直接修改原始序列 seq,而不是返回一个新的序列。

初始化随机种子

random.seed(a=None):指定随机数生成器的种子

random.seed(a=None) 函数用于初始化随机数生成器的种子。如果没有给定参数 a,则默认使用系统当前时间作为种子,这意味着每次程序运行时生成的随机数序列都是不同的。如果给定了一个固定的种子 a,那么每次程序运行时生成的随机数序列都是相同的。

import random

random.seed(42)  # 设置固定的种子
print(random.random())  # 输出 0.6394267984578837
print(random.randint(1, 10))  # 输出 1
print(random.uniform(0, 1))  # 输出 0.7415504997598329
posted @ 2023-03-25 17:05  华小电  阅读(615)  评论(0编辑  收藏  举报