本帖最后由 傻眼貓咪 于 2021-10-30 17:20 编辑 def levels(p: str) -> str:
"""
鉴别密码安全性等级
低级:由数字或字母其中一种组合组成,长度小于 8 位
中级:由数字、字母、或特殊字符任意两种组合组成,长度大于等于 8 位、小于 16 位
高级:由数字、字母、和特殊字符三种组合组成,以字母开头,长度大于等于 16 位
"""
symbol = [chr(i) for i in [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 58,\
59, 60, 61, 62, 63, 64, 91, 92, 93, 94, 95, 96, 123, 124, 125, 126]]
a = any([bool(i.isdigit()) for i in p])
b = any([bool(i.isalpha()) for i in p])
c = any([bool(i in symbol) for i in p])
if len(p) < 8:
return "密码等级:低级" if all([True for i in p if i.isalnum()]) else "密码不符合任何等级"
elif len(p) < 16:
return "密码等级:中级" if (a and b and not c) or (b and c and not a) or (c and a and not b) else "密码不符合任何等级"
elif len(p) >= 16 and p[0].isalpha():
return "密码等级:高级" if a and b and not p.isalnum() else "密码不符合任何等级"
else: return "密码不符合任何等级"
def main():
print(levels.__doc__)
print(levels(input("请输入您的密码:")))
if __name__ == "__main__":
main()
|