random库概述:python内置的random库主要用于产生各种分布的伪随机数序列,采用的是梅森旋转算法,可用于大多数的工程应用。
random库常用的9个随机数生成函数:
- seed(a=None)初始化随机数种子,默认值为当前系统时间
注:当a的值确定时,每次随机出来的数都是固定的 - random()生成一个[0.0,1.0)之间的随机小数
- randint()生成一个[a,b]之间的整数
- randrange(start,stop[,step])生成一个[start,stop)之间以step为步数的随机整数
- uniform{a,b)生成一个[a,b]之间的随机小数
- choice(seq)从序列类型,例如列表中中随机返回一个元素
- shuffle(seq)将序列类型中的元素随机排列
注:需要单独print输出,因为shuffle没有返回值,直接输出会报错。 - sample(pop,k)从pop类型中随机选取k个元素,以列表类型返回
- getrandbits(k)生成一个k比特长度的随机整数
当seed的值固定时:
import random
a='axGhFdGhGbhNg'
t=['1','3','5','7','9']
random.seed(6) #将seed设为固定值6
print(random.random())
print(random.randint(1,5))
print(random.randrange(1,10,2)) #步长为2,所以从(1,3,5,7,9)中随机
print(random.uniform(1,5))
print(random.choice(a))
print(random.sample(a,5))
print(random.getrandbits(2))
random.shuffle(t)
print(t) #直接print会返回none,所以分两步
运行结果如下:
当seed的值为默认的系统时间时
import random
a='axGhFdGhGbhNg'
t=['1','3','5','7','9']
random.seed() #seed设为系统默认时间
print(random.random())
print(random.randint(1,5))
print(random.randrange(1,10,2))
print(random.uniform(1,5))
print(random.choice(a))
print(random.sample(a,5))
print(random.getrandbits(2))
random.shuffle(t)
print(t)
运行结果如下: