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