题解 | #密码强度等级#
密码强度等级
https://www.nowcoder.com/practice/52d382c2a7164767bca2064c1c9d5361
while True:
try:
keyword = input()
#判断密码长度
count = 0
if len(keyword) <= 4:
count += 5
elif 5 <= len(keyword) <= 7:
count += 10
else:
count += 25
#判断密码包含字母数量
a,b,c = 0,0,0
for i in keyword:
if ord('a') <= ord(i) <= ord('z'):
b += 1
a += 1
elif ord('A') <= ord(i) <= ord('Z'):
c += 1
a += 1
if a == 0:
count += 0
elif b == 0 and c != 0 or b != 0 and c == 0:
count += 10
elif b != 0 and c != 0:
count += 20
#判断密码包含数字数量
d = 0
for i in keyword:
if i.isdigit():
d += 1
if d == 0:
count += 0
elif d == 1:
count += 10
else:
count += 20
#判断密码包含符号数量
e,f,g = 0,0,0
for i in keyword:
if i.isalpha():
e += 1
elif i.isdigit():
f += 1
g = e+f
if g == len(keyword):
count += 0
elif len(keyword)-g == 1:
count += 10
else:
count += 25
#奖励
if (b != 0 and c != 0) and d != 0 and g != 0:
count += 5
elif (b == 0 and c != 0 or b != 0 and c == 0) and d != 0 and g != 0:
count += 3
elif a != 0 and d != 0:
count += 2
#输出内容,也可以简化一下
if count >= 90:
print("VERY_SECURE")
elif count >= 80:
print('SECURE')
elif count >= 70:
print('VERY_STRONG')
elif count >= 60:
print('STRONG')
elif count >= 50:
print('AVERAGE')
elif count >= 25:
print('WEAK')
else:
print('VERY_WEAK')
except:
break
查看1道真题和解析