python设计检查密码的程序

对输入的密码要求如下:
1.密码位数在8-16之间
2.必须含有至少一个“$","#","@"符号当中的一个
3.至少有一个数字
4.至少两个大写字母
5.至少两个小写字母
6.不接受a-z,A-Z,0-9,$#@之外的任何符号

第一个很简单,到第二个我就不会了,因为现在对于isdigit,isalpha的用法还不是很熟悉,而且后面的字母要两个以上,希望大神们可以帮忙解决下


import re #正则表达式

def main(pwd):
    if len(pwd)<8 or len(pwd)>16:
        print("长度不对")
        return False
    else:
        if re.search(r'[$#@]{1,}', pwd):
            if re.search(r'[0-9]{1,}', pwd):
                if re.search(r'[A-Z]{2,}', pwd) and re.search(r'[a-z]{2,}', pwd):
                    if not re.search(r'[^A-Za-z0-9$#@]', pwd):
                        print("密码合格")
                        return True
                    else:
                        print("不能有其他非法字符")
                        
                else:
                    print("请至少含有2个大写/小写数字")
            else:
                print("请至少含有一个数字")
        else:
            print("请至少包含$#@任意一个字符")
    return False

        
if __name__ == "__main__":
    pwd = "123"
    result = main(pwd)
    print(pwd,"\t",result,"\n----\n")
    
    pwd = "128CChina"
    result = main(pwd)
    print(pwd,"\t",result,"\n----\n")
    
    pwd = "12345678@China"
    result = main(pwd)
    print(pwd,"\t",result,"\n----\n")
    
    pwd = "12345@CChina"
    result = main(pwd)
    print(pwd,"\t",result,"\n----\n")
    
    pwd = "128@CChina.."
    result = main(pwd)
    print(pwd,"\t",result,"\n----\n")

img

你是要得到一个这样要求的密码还是检查输入的密码符不符合要求?