Python Random模块生成伪随机数字

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) : 根据等式+中的浮点舍入,端点值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())

 

posted @ 2018-03-04 20:23  短毛兔  阅读(2934)  评论(0编辑  收藏  举报