密码强度判断
密码强度判断
描述
用户输入一个字符串做为密码,判断密码强度,规则为:密码长度小于8弱密码,密码长度大于等于8且包含至少2种字符为中等强度、密码包含3种字符为强、包含全部4种字符为极强。
提示:
string.digits 可返回'0123456789'
string.ascii_lowercase 可返回'abcdefghijklmnopqrstuvwxyz'
string.ascii_uppercase 可返回'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
string.punctuation 可返回'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
输入格式
输入一个字符串
输出格式
密码强度的判断结果,分:弱、中、强、极强,共四种
输入输出示例
输入 | 输出 |
---|---|
123sdf | 弱 |
12345678as | 中 |
12345678Aa | 强 |
12345678Aa! | 极强 |
def count_characters(string):
lowercase = 0
uppercase = 0
digits = 0
spaces = 0
other = 0
for char in string:
if char.islower():
lowercase += 1
elif char.isupper():
uppercase += 1
elif char.isdigit():
digits += 1
elif char.isspace():
spaces += 1
else:
other += 1
return lowercase, uppercase, digits, other
input_string = input()
if len(input_string) < 8:
print("弱")
else:
n = 0
ls = count_characters(input_string)
for i in ls:
if i > 0:
n += 1
if n == 4:
print("极强")
elif n == 3:
print("强")
elif n == 2:
print("中")
else:
print("弱")