#! 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
提交
取消