Python 的 random 模块是一个非常实用的工具,它提供了生成各种类型随机数的方法。无论是生成随机整数、浮点数,还是从序列中随机选择元素,random 模块都能满足你的需求。下面是一个详细的教程,介绍 random 模块的主要功能和用法。
导入模块
首先,你需要导入 random 模块才能使用它:
import random
生成随机整数
randint(a, b)
返回一个介于 a 和 b 之间(包括 a 和 b)的随机整数。
random_int = random.randint(1, 10) print(random_int) # 输出 1 到 10 之间的一个整数
randrange(start, stop[, step])
返回一个介于 start 和 stop 之间(不包括 stop)的随机整数,步长为 step。如果不提供 step,则默认为 1。
random_num = random.randrange(0, 100, 10) print(random_num) # 输出 0 到 90 之间(不包括 90)的一个整数,步长为 10
生成随机浮点数
random()
返回一个介于 0.0 和 1.0 之间的随机浮点数。
random_float = random.random() print(random_float) # 输出 0.0 到 1.0 之间的一个浮点数
uniform(a, b)
返回一个介于 a 和 b 之间的随机浮点数。
random_float = random.uniform(1.0, 10.0) print(random_float) # 输出 1.0 到 10.0 之间的一个浮点数
从序列中随机选择
choice(seq)
从非空序列 seq 中随机选择一个元素。
my_list = ['apple', 'banana', 'cherry'] random_fruit = random.choice(my_list) print(random_fruit) # 输出列表中的一个随机元素
shuffle(x)
就地打乱序列 x 的元素。
my_list = [1, 2, 3, 4, 5] random.shuffle(my_list) print(my_list) # 输出被打乱顺序的列表
sample(population, k)
从 population 序列中随机选择 k 个不重复的元素。
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9] random_sample = random.sample(my_list, 3) print(random_sample) # 输出列表中的 3 个随机且不重复的元素
设置随机数种子
使用 seed(a) 函数可以为随机数生成器设置种子,这样每次使用相同的种子时,生成的随机数序列都是相同的。这对于需要可重现结果的测试或模拟非常有用。
random.seed(42) # 设置种子为 42 print(random.randint(1, 10)) # 多次运行这段代码将输出相同的整数
注意事项
- random 模块生成的随机数是伪随机的,意味着它们是由确定性算法生成的。因此,在需要加密安全的随机数时,不应使用 random 模块,而应使用 secrets 模块。
- 默认情况下,随机数生成器的种子是系统提供的,这意味着每次程序运行时生成的随机数序列可能是不同的。通过设置种子,可以确保每次运行程序时生成相同的随机数序列。