题解 | #密码强度等级#
密码强度等级
https://www.nowcoder.com/practice/52d382c2a7164767bca2064c1c9d5361
import re
import sys
for line in sys.stdin:
a = line.strip()
score = 0
length = len(a)
if length <= 4:
score += 5
elif length < 8:
score += 10
else:
score += 25
upper_letter_count = len(re.findall('[A-Z]', a))
lower_letter_count = len(re.findall('[a-z]', a))
if upper_letter_count + lower_letter_count == 0:
pass
elif upper_letter_count == 0 or lower_letter_count == 0:
score += 10
else:
score += 20
num = len(re.findall('[0-9]', a))
if num == 0:
pass
elif num == 1:
score += 10
else:
score += 20
ch = len(re.findall('[^\s0-9a-zA-Z]', a))
if ch == 0:
pass
elif ch == 1:
score += 10
else:
score += 25
if all([upper_letter_count, lower_letter_count, num, ch]):
score += 5
elif all([upper_letter_count + lower_letter_count, num, ch]):
score += 3
elif all([upper_letter_count + lower_letter_count, num]):
score += 2
if score >= 90:
print('VERY_SECURE')
elif score >= 80:
print('SECURE')
elif score >= 70:
print('VERY_STRONG')
elif score >= 60:
print('STRONG')
elif score >= 50:
print('AVERAGE')
elif score >= 25:
print('WEAK')
elif score >= 0:
print('VERY_WEAK')
查看7道真题和解析
