Python内置模块randomrandom库是Python中生成随机数的标准库。包含的函数列表如下:基本随机函数:seed、random、getstate、setstate;扩展随机函数:randint、getrandbits、randrange、choice、shuffle、sample;分布式随机函数:均匀、三角、betavariate、expovariate、gammavariate、gauss、lognormvariate、normalvariate、vonmisesvariate、paretovariate、weibullvariate。发现variate这个词出现的频率比较高,但是意思是可变的。基本随机函数seed和random函数seed函数初始化一个随机种子,默认为当前系统时间。random函数生成一个介于[0.0,1.0)之间的随机小数。具体代码如下:importrandomrandom.seed(10)x=random.random()print(x)需要说明的是random.seed函数。通过seed函数每次都可以产生相同的随机数,例如下面的代码:importrandomrandom.seed(10)x=random.random()print(x)random.seed(10)y=random.random()print(y)在不同的代码上得到的值是不同的,但是x和y的是相同的。0.57140259468991350.5714025946899135getstate()和setstate(state)getstate函数用于记录随机数发生器的状态,setstate函数用于将发生器恢复到上次记录的状态。#记录生成器的状态state_tuple=random.getstate()foriinrange(4):print(random.random())print("*"*10)#传入参数random后恢复之前的状态。setstate(state_tuple)forjinrange(4):print(random.random())输出的随机数两次一致。0.100432961407917580.61836686655040620.69643285906931090.6702494141830372**********0.100432961407917580.61836686655040620.69643285906931090.6702494141830372扩展随机函数random扩展随机函数有如下几个:randint`、`getrandbits`、`randrange`、`choice`、`shuffle`、`samplerandint和randerangerandint在区间[x,y]中生成一个整数。randrange在区间[m,n)内生成一个随机整数,步长为k。测试代码如下:x=random.randint(1,10)print(x)y=random.randrange(1,10,2)print(y)这两个函数比较简单,randint的原型函数如下:random.randint(start,stop)参数start代表最小值,参数stop代表最大值,两端为闭区间,即start和stop都可以得到。randrange函数的原型如下:random.randrange(start,stop,step)如果函数调用时只有一个参数,默认值为0到参数值。这个函数和randint的区别是函数左闭右开,最后一个参数是步长。查看效果,可以复制如下代码运行:foriinrange(3):print("*"*20)print(random.randrange(10))print(random.randrange(5,10))print(random.randrange(5,100,5))getrandbits(k)和choice(seq)getrandbits生成一个k位随机整数,实际输出的是k位二进制数转换成的十进制数。choice从序列中随机选择一个元素。x=random.getrandbits(5)print(x)#生成的长度为00000-11111getrandbits(k)函数可以简单描述为:输出$\[0,2^k-1范围内的随机整数\]$,k表示二进制的位数。选择更简单,从列表中返回一个随机元素。importrandom_list=["a","b","c"]print(random.choice(my_list))shuffle(seq)和sample(pop,k)shuffle函数用于对序列中的元素进行随机排序,并且原来的序列被修改了。sample函数用于从一个序列或集合中随机选择k个选择,保持原始序列不变。my_list=[1,2,3,4,5,6,7,8,9]random.shuffle(my_list)print(my_list)shuffle函数只能用于可变序列,不可变序列(如元组)将发生错误。my_list=["Dream","Eraser",1,2,[3,4]]print(my_list)ls=random.sample(my_list,4)print(ls)这部分分布随机函数涉及较多,重点介绍一些重要和常用的功能。uniform(a,b)、betavariate和三角函数uniform使用等概率分布在[a,b]之间生成一个随机小数。betavariate使用beta分布在[0,1]之间生成一个随机小数。triangular使用三角分布在[low,high]之间生成一个随机小数。使用uniform时需要注意,如果a
