This module implements pseudo-random number generators for various distributions.
对于整数,有一个范围的均匀选择;
对于序列,存在随机元素的均匀选择,产生就地列表的随机置换的函数,以及用于无替换的随机采样的函数
Almost all module functions depend on the basic function random(),其在半开放范围[0.0,1.0)中均匀地生成随机浮点数。
一、整数的函数
random.
randrange
(stop)
random.
randrange
(start, stop[, step])
从random.
randrange
(start, stop[, step])返回一个从start到stop范围内的随机整数(start,stop,step都是整数,不包含stop)。
random.
randint
(a, b)
返回一个随机整数n,a <= n <= b
二、序列函数
random.
choice
(seq):从一个非空序列seq中返回随机一个元素,如果seq为空,则引发IndexError。
random.shuffle(x,[random]):原地搅乱序列x,打乱一个序列。
random.sample(population,k):返回从群体序列或集合中选择的唯一元素的k长度列表。用于随机抽样,无序更换。随机选择多个返回,返回的个数为函数的第二个参数
random.random() :返回[0.0,1.0]中随机浮点数。
random.uniform(a,b) : 根据等式a +中的浮点舍入,端点值
。b
(ba) * random()
>>> import random
#随机小数
>>> random.random() # 大于0且小于1之间的小数
0.7664338663654585
>>> random.uniform(1,3) #大于1小于3的小数
1.6270147180533838 #随机整数
>>> random.randint(1,5) # 大于等于1且小于等于5之间的整数
>>> random.randrange(1,10,2) # 大于等于1且小于10之间的奇数 #随机选择一个返回
>>> random.choice([1,'',[4,5]]) # #1或者23或者[4,5]
#随机选择多个返回,返回的个数为函数的第二个参数
>>> random.sample([1,'',[4,5]],2) # #列表元素任意2个组合
[[4, 5], ''] #打乱列表顺序
>>> item=[1,3,5,7,9]
>>> random.shuffle(item) # 打乱次序
>>> item
[5, 1, 3, 7, 9]
>>> random.shuffle(item)
>>> item
[5, 9, 7, 1, 3]
练习:生成随机验证码
import random def v_code(): code = ''
for i in range(5): num=random.randint(0,9)
alf=chr(random.randint(65,90))
add=random.choice([num,alf])
code="".join([code,str(add)]) return code print(v_code())