python 编程密码字符串是否符合规范

  1. 编写程序,检查密码字符串是否符合规范:要求至少包含6个字符,且需有英文大小写字母和数字。

    思路:若长度小于6,则密码不合法;

               否则判断是否包含大写字母,若不包含则不合法;
               否则判断是否包含小写字母,若不包含则不合法;
               否则判断是否包含数字,若不包含则不合适;
                以上条件都满足,则密码合法
    

    要求利用:isalnum()、isalpha()、isdigit()、isdecimal()、isnumeric()、isspace()、isupper()、islower()

def pwd(p: str):
    if len(p)<6: return False
    up = low = digit = False
    for i in p:
        if i.isdigit():
            digit = True
        elif i.isupper():
            up = True
        elif i.islower():
            low = True
    return up+low+digit == 3

p = input()
if pwd(p):
    print("密码合法")
else:
    print("密码不合法")
def is_all_valid(big, small, num):
    return big and small and num


def check_password(pwd: str) -> bool:
    if len(pwd) < 6:
        return False

    has_big = False
    has_small = False
    has_num = False

    valid_flag = False
    for item in pwd:
        if valid_flag:
            break
        if item.isalpha():
            if item.isupper():
                has_big = True
                valid_flag = is_all_valid(has_big, has_small, has_num)
            else:
                has_small = True
                valid_flag = is_all_valid(has_big, has_small, has_num)
        elif item.isnumeric():
            has_num = True
            valid_flag = is_all_valid(has_big, has_small, has_num)

    return valid_flag


if check_password(input('请输入密码:')):
    print('密码合法')
else:
    print('密码不合法')