#! python#STRONG PASSWORD PROGRAMimport re, pyperclippw_compare_lower=re.compile(r'[a-z]')pw_compare_upper=re.compile(r'[A-Z]')pw_compare_digit=re.compile(r'[0-9]')gr=str(input())def Checker(gr): if len(gr)<8: return 0 if pw_compare_lower.search(gr)==None: return 0 if pw_compare_upper.search(gr)==None: return 0 if pw_compare_digit.search(gr)==None: return 0 return 1if (Checker(gr))==1: print("Strong Password")elif (Checker(gr))==0: print("Weak Password")有沒有辦法可以在一行中編寫三個 pw_compare_digit、pw_compare_upper、pw_compare_lower 函數以形成一個正則表達式。條件如下:強密碼定義為長度至少為 8 個字符、包含大寫和小寫字符且至少有一位數字的密碼
2 回答
開滿天機
TA貢獻1786條經驗 獲得超13個贊
我想指出,您也可以在沒有正則表達式的情況下實現這一點,以下代碼將檢查 gr 是否至少有八個字符長,是否包含大寫和小寫字符,并且至少有一個數字:
def Checker(gr): return len(gr)>=8 and any([i.islower() for i in gr]) and any([i.isupper() for i in gr]) and any([i.isdigit() for i in gr])
請注意,這個回報True還是False,如果你想要,而0或1干脆把整個返回的值成int()。
添加回答
舉報
0/150
提交
取消
