密碼強度判斷
描述
用戶輸入一個字符串做為密碼,判斷密碼強度,規則為:密碼長度小於8弱密碼,密碼長度大於等於8且包含至少2種字符為中等強度、密碼包含3種字符為強、包含全部4種字符為極強。
提示:
string.digits 可返回'0123456789'
string.ascii_lowercase 可返回'abcdefghijklmnopqrstuvwxyz'
string.ascii_uppercase 可返回'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
string.punctuation 可返回'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
輸入格式
輸入一個字符串
輸出格式
密碼強度的判斷結果,分:弱、中、強、極強,共四種
輸入輸出示例
輸入 123sdf 輸出 弱
12345678as 中
12345678Aa 強
12345678Aa! 極強
代碼
from string import * str1 = input() x=y=p=q=0 for i in str1: if i in digits: x = 1 elif i in ascii_lowercase: y = 1 elif i in ascii_uppercase: p = 1 else: q = 1 s = x + y + p + q if len(str1)<8 : print("弱") else: if s < 2: print("弱") elif s == 2: print("中") elif s == 3: print("強") else: print("極強")
分析
本題需要轉換思路,用x,y,p,q四個量為1或0,代表每一種符號是否在字符串中出現,再使用它們的和來判斷密碼的強度