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,'23',[4,5]]) # #1或者23或者[4,5] #随机选择多个返回,返回的个数为函数的第二个参数 >>> random.sample([1,'23',[4,5]],2) # #列表元素任意2个组合 [[4, 5], '23'] #打乱列表顺序 >>> 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())