题解 | #密码强度等级#
密码强度等级
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进制。