如何实现(python初学者)

题目:用户再输入密码字符串,编程实现检查密码密码是否符合。
下列标准:
第一,[a-z]之间至少有1个字母,不符合本条提示错误信息LowercaseAlphabetError;
第二,[0-9]之间至少有1个数字,不符合本条提示错误信息NumberError;
第三,[A-Z]之间至少有1个字母,不符合本条提示错误信息SupercaseAlphabetError;
第四,[$、#、&、@]中至少有1个字符,不符合本条提示输入错误信息SpecialCharacterError;
第五,密码长度范围6~12,不符合本条提示错误信息Length Error。
第六,不符合多条的要合并打印多个错误信息。

结果:
请输入密码: Ab*th
输入密码发生NumberError、LengthError 错误!请重新输入。
请输入密码: bru1G99
输入密码发生SpecialCharacterError错误!请重新输入。
请输入密码: th1Rc#88
输入密码合法,你输入的密码字符串是th1Rc#88。

def ValidPassword(s):
    res = []
    err = 'LowercaseAlphabetError','NumberError','SupercaseAlphabetError',
                'SpecialCharacterError','LengthError'
    p = []
    p.append([chr(ord('a')+i) for i in range(26)])
    p.append([chr(ord('0')+i) for i in range(10)])
    p.append([chr(ord('A')+i) for i in range(26)])
    p.append(['$','#','&','@'])
    for i in range(4):
        if sum([s.count(i) for i in p[i]])<1:
            res.append(err[i])
    if not 6<=len(s)<=12:
        res.append(err[-1])
    if res:
        return f'输入密码发生{"、".join(res)}错误!请重新输入。'
    else:
        return f'输入密码合法,你输入的密码字符串是{s}。'

print(ValidPassword('Ab*th'))
print(ValidPassword('bru1G99'))
print(ValidPassword('th1Rc#88'))

输入密码发生NumberError、SpecialCharacterError、Length Error错误!请重新输入。
输入密码发生SpecialCharacterError错误!请重新输入。
输入密码合法,你输入的密码字符串是th1Rc#88。

你的第一个密码例子中的星号也不在[$、#、&、@]之列,所以比原题目答案多一个SpecialCharacterError