当前位置:   article > 正文

Python 中 随机数 random库 学习与使用_random库随机整数

random库随机整数

        python中的随机数应用大体包含,随机整数随机浮点数 和 获取随机数序列三类。

一. 随机整数

1.1 随机整数,包含上下限(闭区间)

randint(a, b):随机选取 [a, b] 之间的一个整数,随机整数包含a 和 b,因此是左右闭区间。

  1. # random.randint(a, b)
  2. r = random.randint(0, 100)
  3. print(r)

1.2 随机整数,包含下限,不包含上限(区间左闭右开 )

randrange(a, b):随机选取 [a, b) 之间的一个整数,随机整数包含a,不包含b。

randrange包含三个参数:

1. start :下限

2. stop :上限

3. step :可选参数,用于设置步长

  1. # random.randrange(a, b)
  2. r = random.randrange(0, 100)
  3. # 设置步长
  4. r = random.randrange(0, 100, 5)
  5. print(r)
  6. # output,因为设置了步长5,所以只能从0,5,10,15,...,95,之间随机
  7. 35

二. 随机浮点

 2.1 随机0~1之间的浮点数,!包含0,不包含1

  1. r = random.random()
  2. print(r)

2.2  随机区间内的浮点数

        random.uniform(a, b):随机闭区间 [a, b] 内的浮点数,其中不限制 a 和 b 的大小。

  1. # random.uniform(a, b)
  2. # 随机选取闭区间[20, 50]内的一个浮点数
  3. r = random.uniform(20, 50)
  4. # 随机选取闭区间[1, 15]内的一个浮点数
  5. r = random.uniform(15, 1)

三. 序列相关随机

3.1 从已有的序列中随机选择其中一个元素 或 多个元素(可重复,放回采样)

        (1) random.choice(a):从有序序列里随机获取一个其中数据(有序序列包括字符串、列表、元组等)。     

  1. # 1. 从字符串中随机选取一个字符
  2. r = random.choice('abcdefg')
  3. print(r)
  4. # 2. 从元组中随机选取一个元素
  5. r = random.choice(('aa', 'bb', 'cc', 'dd'))
  6. print(r)
  7. # 3. 从list列表中随机选取一个元素
  8. r = random.choice(['a1', 'a2', 'a3', 'a4'])
  9. print(r)
  10. # 4. 从含有多个类型元素的list列表中选取多个元素
  11. r = random.choice([1, 'abc', ('e, f')])
  12. print(r)
  13. # output
  14. # b
  15. # aa
  16. # a4
  17. # abc

        (2) random.choices(a,weight,k):从有序序列里随机获取多个其中数据(有序序列包括字符串、列表、元组等)。

random.choices() 包含三个参数:

1. a :有序序列,从该序列中随机选择 1个 或 多个元素

2. weight :可选参数,表示概率,如果不设置就默认每个数据被取到的概率相同

3. k :可选参数,表示随机获取的次数

返回值:列表类型,内部元素可重复

  1. # 当元素集合是list时
  2. # 1. 默认等概率取值,取2
  3. r = random.choices(['a1', 'a2', 'a3', 'a4'], k = 2)
  4. print(type(r))
  5. print(r)
  6. # output
  7. # <class 'list'>
  8. # ['a3', 'a2']
  9. # 2. 指定不同元素被获取的概率,取2
  10. r = random.choices(['a1', 'a2', 'a3', 'a4'], weights=[6, 1, 1, 1], k = 2)
  11. print(r)
  12. # output, 可知a1被获取的概率是60%,
  13. # ['a1', 'a1']

        注意!:当元素列表是 list字符串 或 元组 时,random.choices()返回值类型也是 list

  1. # 元组类型
  2. t = ('t1', 't2', 't3', 't4')
  3. print(type(t))
  4. r = random.choices(t, weights=[1, 1, 1, 6], k = 2)
  5. print(type(r))
  6. # output
  7. # <class 'tuple'>
  8. # <class 'list'>

3.2 从已有的序列中随机选择其中一个元素 或 多个元素(不可重复,不放回采样)

       random.sample(a,k):在已知序列 a 中,一次性 + 随机 选取 k 个,同一个元素不会被重复选择;返回值类型 是 list。

        注意:元素集合的长度 必须大于 选择次数。

  1. r = random.sample([1, 1, 1, 1, 2], k=2)
  2. print(type(r))
  3. print(r)
  4. # output
  5. # <class 'list'>
  6. # [1, 2]

3.3 随机打乱序列顺序

        random.shuffle(a):随机打乱元素集合列表a,然后将结果覆盖原列表a。
        注意:被打乱的序列必须是可变的,比如列表;不能是是元组,因为元组是不可修改的。

  1. a = [1, 2, 3, 4, 5]
  2. random.shuffle(a)
  3. print(a)
  4. # output
  5. # [3, 1, 5, 2, 4]
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/966066
推荐阅读
相关标签
  

闽ICP备14008679号