0基础学Python(4)——验证码函数

来源:互联网 发布:免费私有云软件 编辑:程序博客网 时间:2024/06/15 04:52

兄弟连学Python(4)——验证码函数

 

本周学习了一个制作验证码的函数,在自己消化理解之后,整理了自己思路,一步一步写了下来,希望自己可以活用。

 

#不选择模式的验证码    4位混合验证码

import random

def yzm(d):

    lis = list('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')

    #打乱列表的顺序

    random.shuffle(lis)

    #返回值

    return ''.join(lis[0:d])

#调用函数并打印其结果

res = yzm(4)

print(res)

 

#使用ascii码写不选择模式的混合验证码的函数

import random

def yzm(d):

    i = 0

    #定义一个装结果的空字符串

    strk = ''

    while i < d:

        ascii = random.randrange(48,123)

        if ascii in range(58,65):

            continue

        elif ascii in range(91,97):

            continue

        else:

            strk += chr(ascii)

        i += 1

    return strk

res = yzm(4)

print(res)

 

 

#写可以选择验证码形式的函数

import random

def yzm(w = 4,m = 3):    #默认值设置为4位的混合验证码

# m=0:纯数字,m=1:纯小写,m=2:纯大写,m=其他:混合

    #使用纯数字模式

    if m == 0:

        lis = list('0123456789')

        random.shuffle(lis)

        #返回值结果是直接连接w个字符串组成的新字符串

        return ''.join(lis[0:w])

#res = yzm(4,0)

#print(res)

    #使用纯小写字母模式

    elif m == 1:

        lis = list('abcdefghijklmnopqrstuvwxyz')

        random.shuffle(lis)

        return ''.join(lis[0:w])

#res = yzm(4,1)

#print(res)

    #使用纯大写字母模式

    elif m == 2:

        lis = list('ABCDEFGHIJKLMNOPQRSTUVWXYZ')

        random.shuffle(lis)

        return ''.join(lis[0:w])

#res = yzm(4,2)

#print(res)

    #使用大小写混合模式

    else:

        lis = list('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')

        random.shuffle(lis)

        return ''.join(lis[0:w])

#res = yzm(4,3)

#print(res)

 

#调用函数

res = yzm()

print(res)

 

 

#使用ascii码写一个可以选择模式和位数的验证码函数

import random

def yzm(w = 4,m = 3):      #默认值设置为4位的混合验证码

# m=0:纯数字,m=1:纯小写,m=2:纯大写,m=其他:混合

    #纯数字

    if m == 0:

        #首先,定义一个空字符串

        bank = ''

        i = 0

        while i < w:

            bank += chr(random.randrange(48,58))

            i += 1

        return bank

#res = yzm(4,0)

#print(res)

    #纯小写字母

    elif m == 1:

        bank = ''

        i = 0

        while i < w:

            bank += chr(random.randrange(97,123))

            i += 1

        return bank

#res = yzm(4,1)

#print(res)

 

    #纯大写字母

    elif m == 2:

        bank = ''

        i = 0

        while i < w:

            bank += chr(random.randrange(65,91))

            i += 1

        return bank

#res = yzm(4,2)

#print(res)

    #数字大小写字母混合

    else:

        bank = ''

        i = 0

        while i < w:

            ascii = random.randrange(48,123)

            if ascii in range(58,65):

                continue

            elif ascii in range(91,97):

                continue

            else:

                bank += chr(ascii)

            i += 1

        return bank

#res = yzm(4,3)

#print(res)

 

#调用函数

res = yzm()

print(res)

 

 

Python学习交流、资源共享群:563626388 QQ

 

原创粉丝点击