python内置函数random
一、random.random()
1.1作用
随机生成[0, 1)之间的浮点数
1.2示例代码
import random
print(random.random())
print(random.random())
print(random.random())
print(random.random())
print(random.random())
#结果
0.5766197578353556
0.57247327891827
0.4462615472400666
0.11451953086256073
0.36761261496444264
二、random.randint(a,b)
2.1 作用
随机生成[a,b]范围内一个整数。
2.2 示例代码
import random
print(random.randint(0, 20))
print(random.randint(0, 20))
print(random.randint(0, 20))
print(random.randint(0, 20))
print(random.randint(0, 20))
#结果
18
11
20
16
20
三、random.randrange(a,b,step)
3.1作用
- 不指定step,随机生成[a,b)范围内一个整数。
- 指定step,step作为步长会进一步限制[a,b)的范围,比如randrange(0,11,2)意即生成[0,11)范围内的随机偶数。
- 不指定a,则默认从0开始。
3.2示例代码
import random
print(random.randrange(0, 10,))
print(random.randrange(0, 10))
print(random.randrange(0, 10, 2))
print(random.randrange(0, 10, 2))
print(random.randrange(0, 10, 3))
print(random.randrange(0, 10, 3))
#结果
3
4
2
2
6
6
四、random.uniform(a,b)
4.1 作用
产生[a,b]范围内一个随机浮点数。
4.2 示例代码
import random
print(random.uniform(0, 5))
print(random.uniform(0, 5))
print(random.uniform(0, 5))
print(random.uniform(0, 5))
print(random.uniform(0, 5))
1.3417377618818764
0.11974945860308173
3.2462974509594766
2.3097156739199463
1.9782236542891152
五、random.choice(seq)
5.1 作用
从非空序列中随机选取一个数据并带回,该序列可以是list、tuple、str、set。如果序列为空,则弹出IndexError错误。
5.2 示例代码
import random
print(random.choice('AutomaticDriving'))
print(random.choice('AutomaticDriving'))
print(random.choice('AutomaticDriving'))
print(random.choice('AutomaticDriving'))
#结果
D
o
u
c
六 、random.choices(population,weights=None,*,cum_weights=None,k=1)
6.1 作用
从集群中随机选取k次数据,返回一个列表,可以设置权重。
注意每次选取都不会影响原序列,每一次选取都是基于原序列。
6.2 参数解释
- population:集群
- weights:相对权重
- cum_weights:累加权重
- k:选取次数
6.3示例代码
import random
a = [1,2,3,4,5]
#1
print(random.choices(a,k=5))
#2
print(random.choices(a,weights=[0,0,1,0,0],k=5))
#3
print(random.choices(a,weights=[1,1,1,1,1],k=5))
#4
print(random.choices(a,cum_weights=[1,1,1,1,1],k=5))
#结果
[1, 2, 1, 4, 1]
[3, 3, 3, 3, 3]
[3, 5, 2, 3, 2]
[1, 1, 1, 1, 1]
6.4示例代码解读
- #1 : 重复输出10次列表a中的各个成员出现概率基本持平。
- #2 : 重复输出10次每次输出均得到[3,3,3,3,3]结果。
- #3 : 重复输出10次列表a中的各个成员出现概率基本持平。
- #4 : 重复输出10次每次输出均得到[1,1,1,1,1]结果。
- 参数weights设置相对权重,它的值是一个列表,设置之后,每一个成员被抽取到的概率就被确定了。
比如weights=[1,2,3,4,5],那么第一个成员的概率就是P=1/(1+2+3+4+5)=1/15。- cum_weights设置累加权重,Python会自动把相对权重转换为累加权重,即如果你直接给出累加权重,那么就不需要
给出相对权重,且Python省略了一步执行。
比如weights=[1,2,3,4],那么cum_weights=[1,3,6,10]
这也就不难理解为什么cum_weights=[1,1,1,1,1]输出全是第一个成员1了。
七、random.sample(population,k)
7.1 作用
从集群population中选取k个元素,返回一个列表,集群可以是list、tuple、str、set。
与random.choices()的区别:一个是选取k次,一个是选取k个,选取k次的相当于选取后又放回,选取k个则选取后不放回。故random.sample()的k值不能超出集群的元素个数。
7.2示例代码
import random
a = ['SAIC', 'FAW', 'Geely', 'chengcheng', 'chengan']
print(random.sample(a, 3))
print(random.sample(a, 3))
print(random.sample(a, 3))
['Geely', 'chengan', 'chengcheng']
['chengan', 'FAW', 'chengcheng']
['FAW', 'chengcheng', 'SAIC']