• Python字符串、集合练习_密码校验


    校验密码是否合法:

    1、输入一个密码要求长度在5-10位:len()

    2、密码里面必须包含:大写字母,小写字母和数字:字符串方法或者集合

    3、最多输入5次:for

    用字符串方法实现:

    复制代码
    for i in range(5):
        passwd = input('请输入你的密码')
        num = 0 #初始化需要放在循环里,每次输入密码都需要重新初始化
        lower = 0
        upper =0
        if len(passwd)>4 and len(passwd) <11: #判断密码长度在5-10位
            for pwd in passwd:  #循环字符串中的字符
                if pwd.isdigit(): #字符是否是数字
                    num += 1
                elif pwd.islower(): #字符是否是小写字母
                    lower += 1
                elif pwd.isupper(): #字符是否是大写字母
                    upper += 1
            if num and lower and upper: #若数字、大写及小写均为真,则满足密码包含大小写字母和数字
                print('密码输入成功')
            else:
                print('密码必须包含大小写字母及数字')
        else:
            print('密码长度必须在5-10位')
    复制代码

    用isdisjoint()集合方法实现:

    复制代码
    num = {'0','1','2','3','4','5','6','7','8','9'} #定义数字集合,因为输入的密码为字符串,所以要将数字定义为string类型
    lower = {'a','b','c','d','e','f','g','h','i','g','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'} #定义小写字母集合
    upper = {'A','B','C','D','E','F','G','H','I','G','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'} #定义大写字母集合
    for i in range(5):
        passwd = input('请输入你的密码')
        pwd = set(passwd)  #将字符串转化为集合
        if len(passwd) >4 and len(passwd)<11: #判断密码长度在5-10位
            if pwd.isdisjoint(num) or pwd.isdisjoint(lower) or pwd.isdisjoint(upper): #判断是否没有交集
        #若输入密码集合与数字、小写、大写集合任何一个没有交集,则不满足密码包含大小写字母和数字
                print('密码里面必须包含大小写字母及数字')
            else:
                print('密码输入成功')
                break
        else:
            print('密码长度必须在5-10位')
    复制代码

    用交集实现

    复制代码
    import string
    num_set=set(string.digits)
    upper_set = set(string.ascii_uppercase)
    lower_set = set(string.ascii_uppercase)
    pun = set(string.punctuation)
    for i in range(5):
        passwd = input('请输入密码')
        pwd = set(passwd) #将字符串转化为集合
        if len(passwd) > 4 and len(passwd) < 11:
            if pwd & num_set and pwd & upper_set and  pwd & lower_set and pwd & pun:
                print('密码合法')
                break
            else:
                print('密码必须包含大小写字母和数字')
        else:
            print('密码长度必须在5-10位')
  • 相关阅读:
    一些特殊的矩阵快速幂 hdu5950 hdu3369 hdu 3483
    HDU
    UVA-796 Critical Links 找桥
    HDU 4612 Warm up
    2017 ICPC乌鲁木齐 A Coins 概率dp
    HDU6223 Infinite Fraction Path bfs+剪枝
    Java基础知识学习(一)
    算法(一)
    面试题整理:SQL(二)
    面试题整理:SQL(一)
  • 原文地址:https://www.cnblogs.com/weilemeizi/p/9003177.html
Copyright © 2020-2023  润新知