【python】模块—随机模块—random模块

一、随机模块方法:

1.直接返回随机数

(1)返回0~1的随机数——random()

(2)返回a到b的随机整型,b能取——ranint(a, b)

(3)返回a到b的随机整型,b不能取——ranrange(a, b)

(4)返回a到b的随机浮点型——uniform(a, b)

import random

ret1 = random.random()   #返回0~1的随机数
ret2 = random.randint(1,3)   #返回1到3的随机整型,3能取
ret3 = random.randrange(1,3) #返回1到3的随机整型,3不能取
ret4 = random.uniform(1,4)    #返回1到4的随机浮点型
print(ret1, ret2, ret3, ret4)
'''
0.5929600412814828
3
1
2.465607548177685
'''

2.list列表中选取随机数

(1)随机返回列表list中的一个值——choice(list)

(2)随机返回包含列表list中的n个值的列表——sample(list, n)

import random
my_list = [11,22,33,44,55]
ret1 = random.choice(my_list)
n = 1
ret2 = random.sample(my_list,n)
print(ret1, ret2)
#结果:22 [11]
#注意:第二个返回的是一个列表

3.打乱列表次序(无返回值)——shuffle(list)

import random

ret=[1,2,3,4,5]
random.shuffle(ret)
print(ret)    #结果:[4, 1, 3, 5, 2]

二、随机模块应用——生成验证码函数

1.详细的过程

import random

def v_code(n):
    # n代表需要生成验证码的位数
    ret=""
    for i in range(n):
        num=random.randint(0,9)    #获取0~9的随机整数
        alf_buffer = random.randint(65,122)    #获取65~122的随机整数
        alf=chr(alf_buffer)    #将其与ASCII对应,生成字母
        my_code_buffer = [num,alf]    #将生成的随机数与随机字母组成列表
        my_code = random.choice(my_code_buffer)    #随机选取数字或列表
        s=str(my_code)    #将结果转换成字符串
        ret+=s    #将当前结果添加到最终输出结果中
    return ret

print(v_code(5))  #调用函数  eV]8y
详细的原理

2.优化代码

import random

def v_code(n):
    #验证码生成函数
    ret=""
    for i in range(n):
        num=random.randint(0,9)
        alf=chr(random.randint(65,122))
        s=str(random.choice([num,alf]))
        ret+=s
    return ret
    
my_code = v_code(5)  #调用函数

————————————————————结束 ————————————————————

posted on 2018-07-21 21:51  索米尔  阅读(79)  评论(0)    收藏  举报

导航