import string
pwd=input('请输入你的密码:').strip()
pwd=set(pwd)
#密码必须包括大写字母、小写字母、数字、特殊字符
if pwd&set(string.digits) and pwd&set(string.ascii_uppercase) and pwd&set(string.ascii_lowercase) and pwd&set(string.punctuation):
print("密码合法")
else:
print("密码不合法")
解析:pwd&set(string.digits)
string.digits---0到9的数字
pwd & set(string.digits)的交集,为真即含有数字
pwd&set(string.ascii_uppercase)交集,为真即含有大写字母
pwd&set(string.ascii_lowercase) 交集,为真即含有小写字母
pwd&set(string.punctuation)交集,为真即含有特殊字符