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]结果。
  1. 参数weights设置相对权重,它的值是一个列表,设置之后,每一个成员被抽取到的概率就被确定了。
    比如weights=[1,2,3,4,5],那么第一个成员的概率就是P=1/(1+2+3+4+5)=1/15。
  2. 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']

猜你喜欢

转载自blog.csdn.net/LiuXF93/article/details/122523732