Python 官方文档:入门教程 => 点击学习
random是python自带的库,用来生成随机数,或随机取值等。 随机生成值 随机浮点数 random.random() random.random():生成[0, 1)之间的随机浮点数并返回 im
random是python自带的库,用来生成随机数,或随机取值等。
random.random()
:生成[0, 1)之间的随机浮点数并返回
import randomr = random.random()print(r)
执行结果如下:
0.9639100107207462
random.uniform(a, b)
:在指定范围[a, b](或[b, a])之间,随机生成一个浮点数并返回;参数a和b的类型是浮点数
import randomr1 = random.uniform(2, 19.3)r2 = random.uniform(190, 47)r3 = random.uniform(-78, 2)print("在[2, 19.3]之间的随机数:", r1)print("在[190, 47]之间的随机数:", r2)print("在[-78, 2]之间的随机数:", r3)
执行结果如下:
在[2, 19.3]之间的随机数: 4.030505355527254在[190, 47]之间的随机数: 172.06876178208802在[-78, 2]之间的随机数: -67.73925750171473
random.randint(a, b)
:在[a, b]之间随机生成一个整数并返回
import randomr1 = random.randint(2, 19)r2 = random.randint(190, 190)r3 = random.randint(-78, 2)print("在[2, 19]之间的随机整数:", r1)print("在[190, 190]之间的随机整数:", r2)print("在[-78, 2]之间的随机整数:", r3)
执行结果为:
在[2, 19]之间的随机整数: 5在[190, 190]之间的随机整数: 190在[-78, 2]之间的随机整数: -41
random.randrange(start, stop=None, step=1)
:在[start, stop)之间,以start开始,间隔step,到stop(不包含)结束,随机取其中一个数值,类似于在range(start, stop, step)中随机取一个数值
import randomr1 = random.randrange(2, 19)r2 = random.randrange(2, 19)r3 = random.randrange(2, 3)print("在[2, 19)之间的随机整数: randrange(2, 19)=", r1)print("在[2, 19)之间的随机整数: randrange(2, 19)=", r2)print("在[2, 3)之间的随机整数(只有2符合): randrange(2, 3)=", r3)r4 = random.randrange(2, 19, 4)r5 = random.randrange(2, 6, 4)print("在[2, 19)之间的随机整数,且与2的差可被4整除: randrange(2, 19, 4)=", r4)print("在[2, 6)之间的随机整数(一直是2): randrange(2, 19, 4)=", r5)r6 = random.randrange(-45, 4)print("参数为负数时参考: randrange(-45, 4)=", r6)r7 = random.randrange(12, 3, -2)print("参数step为负数时参考: randrange(12, 3, -2)=", r7)
执行结果如下:
在[2, 19)之间的随机整数: randrange(2, 19)= 9在[2, 19)之间的随机整数: randrange(2, 19)= 12在[2, 3)之间的随机整数(只有2符合): randrange(2, 3)= 2在[2, 19)之间的随机整数,且与2的差可被4整除: randrange(2, 19, 4)= 6在[2, 6)之间的随机整数(一直是2): randrange(2, 19, 4)= 2参数为负数时参考: randrange(-45, 4)= -27参数step为负数时参考: randrange(9, 3, -2)= 8
random.choice(seq)
:从序列seq中随机取一个元素
seq可以是字符串,为字符串时是随机取一个字符,如果是列表、元组等,则是随机取一个元素,也可以是序列类型的迭代器,比如range()
import randomr1 = random.choice("abcdefghijklmn1234567890")print("从字符串随机取值:", r1)r2 = random.choice([34, 16, "24w", "xiaoba", 34.21, [23, 66]])print("从列表中随机取元素:", r2)r3 = random.choice((45, "rand", "没门", 23.63))print("从集合中随机取元素:", r3)itera = range(2, 10, 2)r4 = random.choice(itera)print("参数类型是", type(itera), "从中随机取的值:", r4)
执行结果如下:
从字符串随机取值: 5从列表中随机取元素: xiaoba从集合中随机取元素: 45参数类型是 从中随机取的值: 4
random.choices(population, weights=None, *, cum_weights=None, k=1)
若未设置权重时,每个元素被随机到的概率是一样的
import randomdata = ['人', '生', '苦', '短']print("data的数据为:", data)# 默认循环data列表1次进行随机获取r1 = random.choices(data)print("random.choices(data) \n 结果为:", r1)# 设置循环data列表6次进行随机获取r2 = random.choices(data, k=6)print("\nrandom.choices(data, k=6) \n 结果为:", r2)
执行结果如下:
data的数据为: ['人', '生', '苦', '短']random.choices(data) 结果为: ['人']random.choices(data, k=6) 结果为: ['短', '苦', '短', '短', '生', '生']
设置权重是要对population参数中的每一个元素进行设置(少一个都不行)
weights参数是以相对权重的方式来设置权重的,比如weights=[2, 3, 1, 3]时,第一、二、三的概率分别为2/9、3/9、1/9,计算方式为:对应权重/总权重,总权重weights各个元素的和,即2+3+1+3=9
import randomdata = ['人', '生', '苦', '短']print("data的数据为:", data)r1 = random.choices(data, weights=[2, 3, 1, 3], k=6)print("设置了相对权重:", r1)
执行结果如下:
data的数据为: ['人', '生', '苦', '短']设置了相对权重: ['苦', '短', '人', '短', '生', '短']
还可以以累加权重的方式来设置权重,累加权重的设置是在cum_weights参数中传入的。累加权重可以理解为当前元素的权重值=前一个元素权重值+自个的权重值,所以当前元素的权重值肯定是大于等于前一个元素的权重值,最后一个元素就是总权重值。
可以以相对权重去理解累加权重,比如weights=[2, 3, 1, 3]想转成累加权重的话,思路如下:
- 第1个元素累加权重值cum_weights[0]计算:前面没有其他元素了,前一个元素的权重值可以理解为0,所以它的累加权重值是weights[0]+0,即cum_weights[0] = weights[0] = 2
- 第2个元素累加权重值cum_weights[1]计算:前一个元素的累加权重值cum_weights[0],第二个元素自个的权重值是weights[1],所以cum_weights[1]=cum_weights[0]+weights[1]=2+3=5
- 第3个元素累加权重值cum_weights[2]计算:前一个元素的累加权重值cum_weights[1],第二个元素自个的权重值是weights[2],所以cum_weights[2]=cum_weights[1]+weights[2]=5+1=6
- 第4个元素累加权重值cum_weights[3]计算:前一个元素的累加权重值cum_weights[2],第二个元素自个的权重值是weights[3],所以cum_weights[3]=cum_weights[2]+weights[3]=6+3=9
最后得出weights=[2, 3, 1, 3]转成累加权重的设置是:cum_weights=[2, 5, 6, 9]
import randomdata = ['人', '生', '苦', '短']print("data的数据为:", data)r1 = random.choices(data, cum_weights=[2, 5, 6, 9], k=6)print("设置了累加权重:", r1)r2 = random.choices(data, cum_weights=[0, 1, 1, 1], k=6)print("累加权重,全部是第二个元素(生):", r2)
执行结果为:
data的数据为: ['人', '生', '苦', '短']设置了累加权重: ['生', '短', '人', '短', '苦', '短']累加权重,全部是第二个元素(生): ['生', '生', '生', '生', '生', '生']
choices()方法中一般weights和cum_weights传入其中一个参数即可,如果都传了,有些Python版本是以cum_weights为准,有些Python版本会报错,所以最好就使用其中一个。
random.sample(population, k, *, counts=None)
:将population中的元素按照counts进行复制处理后,随机从处理后的序列中获取k个元素(每一个元素不重复取)并以列表的形式返回
注意: sample()不重复取同一个索引的元素,并不表示返回的元素是不重复的,如果population和counts处理后的序列有重复的元素,则可能会返回一样的元素
import randomdata = ['人', '生', '苦', '短']print("data的数据为:", data)r1 = random.sample(data, 2)print("\n随机取2个元素:", r1)r2 = random.sample(data, 4)print("随机取4个元素(即全部):", r2)r3 = random.sample(data, 4, counts=[0, 1, 2, 1])# 如果传入了counts参数,则是对data进行处理后,在处理后的序列中随机取值# counts的处理逻辑:counts是指定了data对应索引的值的个数,# 即data[0]元素有count(0)=0个,data[1]元素有count(1)=1个,data[2]元素有count(2)=2个,data[3]元素有count(3)=1个# 所以处理后的序列是:['生', '苦', '苦', '短']# random.sample(data, 4, counts=[0, 1, 2, 1])表示从['生', '苦', '苦', '短']中取4个随机元素print("传入了counts参数:", r3)r4 = random.sample(data, 4, counts=[3, 1, 2, 1])print("传入了counts参数(2):", r4)
执行结果如下:
data的数据为: ['人', '生', '苦', '短']随机取2个元素: ['苦', '短']随机取4个元素(即全部): ['生', '短', '苦', '人']传入了counts参数: ['生', '苦', '短', '苦']传入了counts参数(2): ['人', '短', '人', '苦']
random.shuffle(x: List, random=None)
:将列表x随机排序,即打乱原有的排序
random这个参数我也不知道怎么用,等我以后有需求了再去了解,就酱
import randomdata = ['人', '生', '苦', '短', "我", "用", "Python"]print("乱序前:", data)random.shuffle(data)print("乱序后:", data)
执行结果如下:
乱序前: ['人', '生', '苦', '短', '我', '用', 'Python']乱序后: ['苦', '短', '人', 'Python', '生', '我', '用']
来源地址:https://blog.csdn.net/wenxiaoba/article/details/129632560
--结束END--
本文标题: python常用库random
本文链接: https://www.lsjlt.com/news/502456.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
一口价域名售卖能注册吗?域名是网站的标识,简短且易于记忆,为在线用户提供了访问我们网站的简单路径。一口价是在域名交易中一种常见的模式,而这种通常是针对已经被注册的域名转售给其他人的一种方式。
一口价域名买卖的过程通常包括以下几个步骤:
1.寻找:买家需要在域名售卖平台上找到心仪的一口价域名。平台通常会为每个可售的域名提供详细的描述,包括价格、年龄、流
443px" 443px) https://www.west.cn/docs/wp-content/uploads/2024/04/SEO图片294.jpg https://www.west.cn/docs/wp-content/uploads/2024/04/SEO图片294-768x413.jpg 域名售卖 域名一口价售卖 游戏音频 赋值/切片 框架优势 评估指南 项目规模
0