题解 | #密码强度等级#
密码强度等级
https://www.nowcoder.com/practice/52d382c2a7164767bca2064c1c9d5361
def fen(str1):
i, j, k, m, l, g = 0, 0, 0, 0, 0, 0
a, b = 0, 0
c, d = 0, 0
if len(str1) <= 4:
l = 5
elif 5 <= len(str1) <= 7:
l = 10
else:
l = 25
for i in str1:
if 65 <= ord(i) <= 90:
j = 10
if 97 <= ord(i) <= 122:
k = 10
if 48 <= ord(i) <= 57:
a = 10
b += 1
if int(0x21) <= ord(i) <= int(0x2F) or int(0x3A) <= ord(i) <= int(0x40):
c = 10
d += 1
if int(0x5B) <= ord(i) <= int(0x60) or int(0x7B) <= ord(i) <= int(0x7E):
c = 10
d += 1
if d > 1:
c = 25
if b > 1:
a = 20
if b > 0 and j + k == 10:
m = 2
if b > 0 and j + k == 10 and d > 0:
m = 3
if b > 0 and j + k == 20 and d > 0:
m = 5
return l + j + k + a + c + m
def pingfen(int1):
if int1 >= 90:
print("VERY_SECURE")
elif int1 >= 80:
print("SECURE")
elif int1 >= 70:
print("VERY_STRONG")
elif int1 >= 60:
print("STRONG")
elif int1 >= 50:
print("AVERAGE")
elif int1 >= 25:
print("WEAK")
elif int1 >= 0:
print("VERY_WEAK")
pingfen(fen(input()))
分阶段的把五种加分机制写出来,
输出对应的评价。
注意: int()可以将字符串转换为整型,也可以将16进制转化为10进制。

查看14道真题和解析