random()模块导入:import random
常用函数-9个
random.random()
返回一个随机数,范围在0~1之内。float
>>> random.random()
0.49913424915088744
random.uniform()
返回一个指定范围内的随机数,有两个参数。float类型
>>> random.uniform(2,6)
3.9850078689644484
random.randint()
随机生成一个指定范围内整数,有两个参数。int类型
>>> random.randint(2,6)
2
[if !supportLists]w [endif]random.randrange()
在指定范围内,按指定递增基数的集合中获取一个随机数。有三个参数,上限、下线、递增增量。int
>>> random.randrange(2,14,3)
8
random.shuffle()
将一个列表中的元素打乱,随机排序。直接随机改变原list的排序
>>> n=[1,2,3,4,5]
>>> random.shuffle(n)
>>> print(n)
[5, 2, 4, 1, 3]
random.sample()
从指定序列中随机获取指定长度的片段,原有序列不会改变。有两个参数,指定序列、需获取的片段长度。
>>> n=[12,43,56,77,45]
>>> random.sample(n,3)
[12, 43, 45]
random.choice()
从非空序列(list/turple/string)中随机选取一个元素。若序列为空,弹出IndexError。返回值
>>> N=[1,2,3,4,5,6,7]
>>> L='cvfnojsbnf'
>>> random.choice(N)
4
>>> random.choice(L)
'b'
random.choices()
从序列中随机选取k次数据,默认为1,原序列不改变。返回一个列表。
random.choices(seq,weight,cum_weight,k=1)
其中,seq序列;weight序列对应值相对权重;cum_weight累计权重;k选取次数
weight和cum_weight序列长度等于seq长度,该参数可选,默认为None。
权重未赋值,且k>1时,得到的列表包含的数据可以重复
>>> N=[1,2,3,4,5,6,7]
>>> L='cvfnojsbnf'
>>> random.choices(N)
[6]
>>> random.choices(L)
['o']
>>>random.choices(N,weights=[0.1,0.1,0.1,0.1,0.1,0.1,0.1],k=3)
[2, 6, 4]
>>> random.choices(N,k=3)
[2, 1, 1]
random.seed()
只要设置相同的seed,每次生产的随机数相同,使得随机数据可预测。可在调用其他随机模块之前调用。
>>> random.seed(1); random.random()
0.13436424411240122
>>> random.seed(1); random.random()
0.13436424411240122
>>> random.seed(2); random.random()
0.9560342718892494
>>> random.seed(2); random.random()
0.9560342718892494
>>> random.seed(0); random.random()
0.8444218515250481
>>> random.seed(0); random.random()
0.8444218515250481
不常用函数
random.getrandbits()
包含一个参数k,返回一个不大于k位的十进制整数。
例,k=10,则返回值是0~2^10之间的整数
random.getsctate()/random.setsctate()
getsctate()返回一个捕获的生成器当前内部状态的对象,可将次对象传递给setstate()以恢复发哦这个状态
random.triangular()
语法random.triangular(low,high,mode)返回low<N<=high的三角分布随机数
其中,mode指定数出现的位置
random.vonmisesvariate()
卡帕分布vonmisesvariate(mu, kappa)
random.weibullvariate()
威布尔分布random.weibullvariate(alpha, beta)
random.betvatiate()
β分布random.betavariate(alpha, beta)
random.expovariate()
指数分布random.expovariate(lambd)
random.gammavariate()
伽马分布random.gammavariate(alpha, beta)
random.gauss()
高斯分布random.gauss(mu, sigma)
random.lognormvariate()
对数正态分布random.lognormvariate(mu, sigma)
random.normalvariate()
正态分布random.normalvariate(mu, sigma)
random.paretovariate()
帕累托分布random.paretovariate(alpha)