利用random模块写一个6位的随机验证码,验证码内包含字母、数字(随机出现)

#利用random模块写一个6位的随机验证码,验证码内包含字母、数字(随机出现)
from random import randint,shuffle
def daluan(strChar):
    l = list(strChar)
    shuffle(l)
    return ''.join(l)
def grantStr(strLen):
    if strLen < 2:
        return '不处理生成三位一下的字符串的请求'
    charList = [chr(i) for i in range(65, 91)]
    lowerCharList = [chr(i) for i in range(97, 123)]
    totalCharList = charList + lowerCharList  # 得到字母种子列表
    baseChar = totalCharList[randint(0, 51)]  # 随机取出一个字母
    baseNum = str(randint(0, 9))  # 随机取出一个数字
    # 从剩下的四个字符里随机取出字母或数字,总计四位
    remainNumLen = strLen - 2
    randCharLen = randint(0, remainNumLen) #计算应该补齐的字符串长度
    randNumLen = remainNumLen - randCharLen #计算应该补齐的数字长度
    randChar = randNum = ''
    if randNumLen:
        numList = range(0, 10)
        for i in range(0, randNumLen):
            randNum += str(numList[i])
    if randCharLen:
        for j in range(0, randCharLen):
            randChar += totalCharList[j]
    return daluan(''.join(([baseChar,baseNum,randChar,randNum]))) #拼接字符串并打乱顺序后返回
if __name__ == '__main__':
    st = grantStr(6)
    print(st)

Guess you like

Origin blog.csdn.net/sasibingdu/article/details/115009885