题解 | #密码强度等级#
密码强度等级
https://www.nowcoder.com/practice/52d382c2a7164767bca2064c1c9d5361
感觉条件有点多,有点乱,望大神指教,怎么改进 sco_list = [90, 80, 70, 60, 50, 25, 0] res_list = [ "VERY_SECURE", "SECURE", "VERY_STRONG", "STRONG", "AVERAGE", "WEAK", "VERY_WEAK", ] s = input() sco = 0 #长度 if len(s) <= 4: sco += 5 if 5 <= len(s) <= 7: sco += 10 if len(s) >= 8: sco += 25 #字母 flag1 = 0 #有无字母 flag2 = 0 #有无大写 flag3 = 0 #有无小写 flag4 = 0 #数字个数 flag5 = 0 #符号个数 for x in s: if x.isalpha(): flag1 = 1 if x.isupper(): flag2 = 1 if x.islower(): flag3 = 1 if x.isdigit(): flag4 += 1 if not x.isalnum(): flag5 += 1 if (s.upper() == s or s.lower() == s )and flag1 == 1: flag1 = 2 if flag1 == 2: sco += 10 if flag2 + flag3 == 2: sco += 20 if flag1 == 0: sco += 0 #数字 if flag4 == 0: sco += 0 elif flag4 == 1: sco += 10 else: sco += 20 #符号 if flag5 == 0: sco += 0 elif flag5 == 1: sco += 10 else: sco += 25 #奖励 if flag2 + flag3 == 2 and flag4 >= 1 and flag5 >= 1: sco +=5 if (s.upper() == s or s.lower() == s )and flag1 == 1 and flag4 >= 1 and flag5 >= 1: sco +=3 if (s.upper() == s or s.lower() == s )and flag1 == 1 and flag4 >= 1 and flag5 == 0: sco += 2 index = 0 for i in range(len(sco_list)): if sco >= sco_list[i]: index = i break print(res_list[index])