赞
踩
模块random包含生成伪随机数的函数,有助于编写模拟程序或生成随机输出的程序。注意,虽然这些函数生成的数字好像是完全随机的,但它们背后的系统是可预测的。
如果需要真正的随机(如用于加密或实现与安全相关的功能),应考虑使用模块os中的函数urandom。模块random中的SystemRandom类基于的功能与urandom类似,可提供接近于真正随机的数据。
random() 返回一个0~1(含)的随机实数
getrandbits(n) 以长整数方式返回n个随机的二进制位
uniform(a, b) 返回一个a~b(含)的随机实数
randrange([start], stop, [step]) 从range(start, stop, step)中随机地选择一个数
choice(seq) 从序列seq中随机地选择一个元素
shuffle(seq[, random]) 就地打乱序列seq
sample(seq, n) 从序列seq中随机地选择n个值不同的元素
获取一个下限为a,上限为b的随机整数[a,b]
import random
# 随机生成整数0或1
a = random.randint(0, 1)
print(a)
randrange([start], stop, [step]) 从range(start, stop, step)中随机地选择一个数。
函数random.randrange是生成随机整数的标准函数。为指定这个随机整数所在的范围,你可像调用range函数那样给这个函数提供参数。例如,要生成一个1~10(含)的随机整数,可使用randrange(1, 11)或randrange(10) + 1。要生成一个小于20的随机正奇数,可使用randrange(1, 20, 2)。
import random
# 生成一个1~10(含)的随机整数
a = random.randrange(1, 11)
print(a)
# 生成一个小于20的随机正奇数
b = random.randrange(1, 20, 2)
print(b)
函数random.random是最基本的随机函数之一,它返回一个[0, 1)的伪随机数。
import random
# 返回一个0~1(含)的伪随机数
a = random.random()
print(a)
函数功能描述如下:Get a random number in the range [a, b) or [a, b] depending on rounding.
函数random.uniform有两个数字参数a和b,返回一个a~b的随机(均匀分布的)实数。根据rounding的方式不同,可返回[a, b) 或 [a, b]范围的浮点数。
例如,如果你需要一个随机角度,可使用uniform(0, 360)。
import random
# 返回一个0~360的伪随机数
a = random.uniform(0, 360)
# a = random.random()
print(a)
前文介绍的是随机数的获取,random模块还提供了从给定序列(字符串,列表,元组等)中进行选择原始的功能。如年会抽奖,从员工列表中抽取指定人选获奖。
choice 可从给定序列中随机(均匀)地选择一个元素。
import random
peopleList = ['a1', 'a2', 'a3']
# 从给定列表中选择一个元素
a = random.choice(peopleList)
print(a)
随机获取序列中的多个数据结果,而且每次取其中一个数据,获取多次random.choices(list, weights, k)
参数说明:
list: 序列名称
weights: 选中概率(不设置就默认每个数据被取到的概率相同)
k: 获取次数
import random
peopleList = ['a1', 'a2', 'a3']
# 从给定列表中选择一个元素
a = random.choices(peopleList)
print(a)
# 从给定列表中选择多个元素
b = random.choices(peopleList, k = 3)
print(b)
# 从给定列表中选择多个元素,并设置列表元素选中的权重
c = random.choices(peopleList, weights = [8, 1, 1], k = 3)
print(c)
函数random.sample从给定序列中随机(均匀)地选择指定数量的元素,并确保所选择元素的值各不相同。
import random
peopleList = ['a1', 'a2', 'a3']
# 从列表中选择多个数据
a = random.sample(peopleList, k = 2)
print(a)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。