赞
踩
python中的随机数应用大体包含,随机整数、随机浮点数 和 获取随机数序列三类。
randint(a, b):随机选取 [a, b] 之间的一个整数,随机整数包含a 和 b,因此是左右闭区间。
- # random.randint(a, b)
- r = random.randint(0, 100)
- print(r)
randrange(a, b):随机选取 [a, b) 之间的一个整数,随机整数包含a,不包含b。
randrange包含三个参数:
1. start :下限
2. stop :上限
3. step :可选参数,用于设置步长
- # random.randrange(a, b)
- r = random.randrange(0, 100)
-
- # 设置步长
- r = random.randrange(0, 100, 5)
- print(r)
-
- # output,因为设置了步长5,所以只能从0,5,10,15,...,95,之间随机
- 35
- r = random.random()
- print(r)
random.uniform(a, b):随机闭区间 [a, b] 内的浮点数,其中不限制 a 和 b 的大小。
- # random.uniform(a, b)
- # 随机选取闭区间[20, 50]内的一个浮点数
- r = random.uniform(20, 50)
-
- # 随机选取闭区间[1, 15]内的一个浮点数
- r = random.uniform(15, 1)
(1) random.choice(a):从有序序列里随机获取一个其中数据(有序序列包括字符串、列表、元组等)。
- # 1. 从字符串中随机选取一个字符
- r = random.choice('abcdefg')
- print(r)
- # 2. 从元组中随机选取一个元素
- r = random.choice(('aa', 'bb', 'cc', 'dd'))
- print(r)
- # 3. 从list列表中随机选取一个元素
- r = random.choice(['a1', 'a2', 'a3', 'a4'])
- print(r)
- # 4. 从含有多个类型元素的list列表中选取多个元素
- r = random.choice([1, 'abc', ('e, f')])
- print(r)
-
-
- # output
- # b
- # aa
- # a4
- # abc
(2) random.choices(a,weight,k):从有序序列里随机获取多个其中数据(有序序列包括字符串、列表、元组等)。
random.choices() 包含三个参数:
1. a :有序序列,从该序列中随机选择 1个 或 多个元素
2. weight :可选参数,表示概率,如果不设置就默认每个数据被取到的概率相同
3. k :可选参数,表示随机获取的次数
返回值:列表类型,内部元素可重复
- # 当元素集合是list时
- # 1. 默认等概率取值,取2次
- r = random.choices(['a1', 'a2', 'a3', 'a4'], k = 2)
- print(type(r))
- print(r)
-
- # output
- # <class 'list'>
- # ['a3', 'a2']
-
- # 2. 指定不同元素被获取的概率,取2次
- r = random.choices(['a1', 'a2', 'a3', 'a4'], weights=[6, 1, 1, 1], k = 2)
- print(r)
-
- # output, 可知a1被获取的概率是60%,
- # ['a1', 'a1']
注意!:当元素列表是 list 或 字符串 或 元组 时,random.choices()返回值类型也是 list;
- # 元组类型
- t = ('t1', 't2', 't3', 't4')
- print(type(t))
- r = random.choices(t, weights=[1, 1, 1, 6], k = 2)
- print(type(r))
-
- # output
- # <class 'tuple'>
- # <class 'list'>
random.sample(a,k):在已知序列 a 中,一次性 + 随机 选取 k 个,同一个元素不会被重复选择;返回值类型 是 list。
注意:元素集合的长度 必须大于 选择次数。
- r = random.sample([1, 1, 1, 1, 2], k=2)
- print(type(r))
- print(r)
-
- # output
- # <class 'list'>
- # [1, 2]
random.shuffle(a):随机打乱元素集合列表a,然后将结果覆盖原列表a。
注意:被打乱的序列必须是可变的,比如列表;不能是是元组,因为元组是不可修改的。
- a = [1, 2, 3, 4, 5]
- random.shuffle(a)
- print(a)
-
- # output
- # [3, 1, 5, 2, 4]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。