Random模块详解
随机数
random模块
- randint(a, b) 返回[a, b]之间的整数
- randrange ([start,] stop [,step]) 从指定范围内,按指定基数递增的集合中获取一个随机数,基数 缺省值为1。random.randrange(1,7,2)
- choice(seq) 从非空序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中 随机挑选一个整数。random.choice([1,3,5,7])
- 3.6开始提供choices,一次从样本中随机选择几个,可重复选择,可以指定权重
- random.shuffle(list) ->None 就地打乱列表元素
- sample(population, k) 从样本空间或总体(序列或者集合类型)中随机取出k个不同的元素,返回 一个新的列表
- random.sample([‘a’, ‘b’, ‘c’, ‘d’], 2)
- random.sample([‘a’, ‘a’], 2) 会返回什么结果
- 每次从样本空间采样,在这一次中不可以重复抽取同一个元素
import random
# 导入random模块
x = list(range(5))
# 定义一个变量x,x的值是一个列表,列表中有一个range(5)对象
x
# 输出结果 [0, 1, 2, 3, 4] 顺序显示
random.shuffle(x)
# x调用random的shuffle方法,shuffle方法就是洗牌的意思打乱顺序。
x
# 返回了一个全新列表,并且是打乱顺序的[2, 1, 0, 3, 4]
- 使用random的randint方法,获取0,1
- 使用random的randrange方法,range对象,前包后不包。
- 随机取整,10永远也看不到,因为前包后不包。
print(random.choices(x))
# choices可以重复取
- [0, 1] 的范围内取6次,循环执行10次
- [0, 1] 的范围内取6次,[10, 1]权重1v1对应(出现10次0,出现1次1),循环执行10次