python - 如何在没有正则表达式的情况下检查字符串的要求?

pan*_*kes 1 python string passwords

我需要制作一个程序来检查具有以下要求的输入(密码):

  • 长度至少为 8 个字符
  • 包含至少一个小写字母
  • 包含至少一个大写字母
  • 包含至少一个数字

如果不满足任何要求,则应返回 false。

到目前为止,我仅针对第一个要求进行了以下操作。

def check_password(pword):
   if len(pword) < 8:
       return False
   for i in pword:
       if pword[i].isUpper():
           print(True)
   return True
Run Code Online (Sandbox Code Playgroud)

我不知道如何在不使用正则表达式的情况下实现其他要求。

Art*_*rda 5

任何语句返回True,如果你的字符串中有至少一个匹配,在这种情况下,一个大写字母,小写字母和数字字符的要求。然后all语句True仅在满足所有条件时才返回。

def check_password(pword):
    return all([
        len(pword) >= 8,
        any(letter.isupper() for letter in pword),
        any(letter.islower() for letter in pword),
        any(letter.isdecimal() for letter in pword) 
    ])

check_password('a4R') # False
check_password('abcdefgh') # False
check_password('12345678') # False
check_password('ABCDEFGH') # False
check_password('abcDEFGH') # False
check_password('abc45678') # False
check_password('ABC45678') # False
check_password('abcDEF7')  # False
check_password('abcDEF78') # True
check_password('abc12345')  # False
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!!请注意,您的运算符应该 &gt;= 8。谢谢!效果很好! (2认同)