Python函数4-数学函数-random
创始人
2024-03-15 18:27:54
0

文章目录

    • 1、随机数 random
      • 1.0、导包
      • 1.1 random.random()
      • 1.2 random.seed(n)
      • 1.3 random.uniform(a,b)
      • 1.4 random.randint(a,b)
      • 1.5 random.randrange([start=0], stop[, step=1])
      • 1.6 random.choice(sequence)
      • 1.7 random.choices(sequence, k)
      • 1.8 random. shuffle(x)
      • 1.9 random. sample(sequence,k)

长期更新

1、随机数 random

1.0、导包

import random

1.1 random.random()

用于生成一个0到1的随机浮点数: 0 <= n < 1.0

list1 = [random.random() for i in range(5)]
print(list1)
[0.9271152577610227, 0.7006174506049112, 0.5127977465367721, 0.2895395046880833, 0.8221562682396618]

1.2 random.seed(n)

用于设定种子值,其中的n可以是任意数字。
random.random() 生成随机数时,每一次生成的数都是随机的。
但是,使用 random.seed(n) 设定好种子之后,在先调用seed(n)时,使用 random() 生成的随机数将会是同一个。(保证每次运行的随机结果一样)

random.seed(10)
list1 = [random.random() for i in range(5)]
print(list1)random.seed(11)
list1 = [random.random() for i in range(5)]
print(list1)random.seed(10)
list1 = [random.random() for i in range(5)]
print(list1)random.seed(10) # 没执行一次random之前都要设置随机数种子
list1 = [random.random() for i in range(5)]
print(list1)# 未设置随机数种子 立刻不一样了
list1 = [random.random() for i in range(5)]
print(list1)

1.3 random.uniform(a,b)

返回a,b之间的均匀分布里随机采样的浮点数,若a<=b则范围[a,b],若a>=b则范围[b,a] ,a和b可以是实数。

list1 = [random.uniform(15,18) for i in range(6)]
print(list1)
[15.398934434136638, 17.30351344183197, 17.94723974703357, 17.908164481214754, 16.839980461640128, 15.132781898593862]

1.4 random.randint(a,b)

返回a,b之间的整数,范围[a,b],注意:传入参数必须是整数,a一定要比b小。
实测:确实包含右边区间b

list1 = [random.randint(10,20) for i in range(20)]
print(list1)
[17, 19, 12, 14, 13, 11, 12, 13, 17, 16, 14, 11, 15, 12, 19, 20, 20, 11, 19, 10]

1.5 random.randrange([start=0], stop[, step=1])

返回前闭后开区间[start,stop)内的整数,可以设置step。只能传入整数。

list1 = [random.randrange(0,100,2) for i in range(20)] # [0,100) 内的偶数(步长为2嘛)
print(list1)
[20, 82, 80, 14, 22, 0, 76, 50, 18, 98, 72, 20, 24, 20, 2, 84, 30, 56, 80, 48]
list1 = [random.randrange(0,100) for i in range(20)] # [0,100) 内的数(步长默认为1)
print(list1)
[7, 86, 74, 41, 21, 6, 96, 35, 90, 89, 15, 91, 6, 76, 28, 39, 67, 79, 27, 83]
list1 = [random.randrange(100) for i in range(20)] # [0,100) 内的数 (start默认0、step都默认1)
print(list1)
[12, 4, 17, 27, 82, 11, 15, 32, 8, 88, 93, 51, 4, 69, 54, 60, 57, 43, 89, 58]

1.6 random.choice(sequence)

从sequence(序列,列表、元组和字符串)中随机获取一个元素。

list1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]list2 = [random.choice(list1) for i in range(10)] # 每次list1中随机取一个数 共取10次
print(list2)
[8, 9, 1, 0, 17, 9, 7, 12, 0, 2]

1.7 random.choices(sequence, k)

从sequence(序列,列表、元组和字符串)中随机获取k个元素,可能重复,k用参数名传值,k省略则默认取1个,返回list。

list1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]list2 = random.choices(list1,k=10) # 直接从list1中随机获取10个元素 可能重复
print(list2)list2 = random.choices(list1,k=10) # 直接从list1中随机获取10个元素 可能重复
print(list2)
[7, 3, 2, 3, 9, 7, 8, 15, 14, 10]
[3, 4, 0, 15, 5, 9, 18, 18, 8, 0]

1.8 random. shuffle(x)

用于将列表中的元素打乱顺序,俗称为洗牌。

list1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
random.shuffle(list1)
print(list1)
[8, 19, 0, 6, 14, 2, 12, 1, 5, 16, 15, 7, 11, 13, 4, 17, 18, 9, 3, 10]

1.9 random. sample(sequence,k)

从指定序列中随机获取k个不重复元素作为一个列表返回, sample函数不会修改原有序列。

list1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
list2 = random.sample(list1,10) # list1中随机选取10个不重复的数
print(list2)
[0, 6, 16, 5, 15, 11, 9, 10, 19, 8]

相关内容

热门资讯

汽车油箱结构是什么(汽车油箱结... 本篇文章极速百科给大家谈谈汽车油箱结构是什么,以及汽车油箱结构原理图解对应的知识点,希望对各位有所帮...
美国2年期国债收益率上涨15个... 原标题:美国2年期国债收益率上涨15个基点 美国2年期国债收益率上涨15个基...
嵌入式 ADC使用手册完整版 ... 嵌入式 ADC使用手册完整版 (188977万字)💜&#...
重大消息战皇大厅开挂是真的吗... 您好:战皇大厅这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...
盘点十款牵手跑胡子为什么一直... 您好:牵手跑胡子这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游...
senator香烟多少一盒(s... 今天给各位分享senator香烟多少一盒的知识,其中也会对sevebstars香烟进行解释,如果能碰...
终于懂了新荣耀斗牛真的有挂吗... 您好:新荣耀斗牛这款游戏可以开挂,确实是有挂的,需要了解加客服微信8435338】很多玩家在这款游戏...
盘点十款明星麻将到底有没有挂... 您好:明星麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【5848499】很多玩家在这款游戏...
总结文章“新道游棋牌有透视挂吗... 您好:新道游棋牌这款游戏可以开挂,确实是有挂的,需要了解加客服微信【7682267】很多玩家在这款游...
终于懂了手机麻将到底有没有挂... 您好:手机麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...