题解 | #密码强度等级#
密码强度等级
https://www.nowcoder.com/practice/52d382c2a7164767bca2064c1c9d5361
import sys import re for line in sys.stdin: pwd = line.strip() score = 0 length = len(pwd) digit, word, symbol = 0, 0, 0 if length <= 4: score += 5 elif length <= 7: score += 10 else: score += 25 # print(score) words = re.findall('[a-zA-Z]+', pwd) # print(words) if len(words) >= 1: word += 1 if not re.search('[a-z]', pwd) or not re.search('[A-Z]', pwd): score += 10 else: word += 1 score += 20 # print(word, score) nums = re.findall('[0-9]+', pwd) # print(nums) if len(''.join(nums)) == 1: digit += 1 score += 10 elif len(''.join(nums)) > 1: digit += 1 score += 20 # print(digit, score) symbols = re.findall('[^0-9a-zA-Z]', pwd) # print(symbols) if len(''.join(symbols)) == 1: symbol += 1 score += 10 elif len(''.join(symbols)) > 1: symbol += 1 score += 25 # print(symbol, score) bonus = digit + word + symbol if bonus == 4: score += 5 elif bonus == 3 and word == 1: score += 3 else: score += 2 # print(digit, word, symbol, score) 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')