用 Python 检查给定密码是否符合条件的程序

pythonserver side programmingprogramming更新于 2026/1/12 6:04:17

假设我们有一个字符串 s,代表密码,我们必须检查密码条件。我们必须遵循一些规则 −

  • 密码长度至少为 8 个字符,最多为 20 个字符。
  • 密码至少包含一位数字
  • 密码至少包含一个小写字符和一个大写字符
  • 密码至少包含一个特殊字符,如 !"#$%&\'()*+,-./:;<=>?@[\]^_`{|}~
  • 密码不包含任何其他字符,如制表符或换行符。

因此,如果输入类似于 "@bCd12#4",则输出将为 True。

为了解决这个问题,我们将遵循以下步骤 −

  • a:= 0, b:= 0, c:= 0, d:= 0
  • 如果密码大小 < 8 或密码大小 > 20,则
    • 返回 False
  • 对于密码中的每个字符 i,执行
    • 如果 i 是大写字母,则
      • a := a + 1
    • 否则当 i 是小写字母时,则
      • b := b + 1
    • 否则当 i 在这些特殊字符集中 '"!"#^modAND\'() *+,- ./:;<=>?@[\]XOR_`{OR}~"',则
      • c := c + 1
    • 否则当 i 是 a数字,则
      • d := d + 1
  • 如果 a>=1 且 b>=1 且 c>=1 且 d>=1 且 a+b+c+d 与密码长度相同,则
    • 返回 True
  • 否则,
    • 返回 False

让我们看看下面的实现以便更好地理解 −

示例

class Solution:
   def solve(self, password):
      a=0
      b=0
      c=0
      d=0
      if len(password)<8 or len(password)>20:
         return False
      for i in password:
         if i.isupper():
            a+=1
         elif i.islower():
            b+=1
         elif i in '"!"#$%&\'()*+,-./:;<=>?@[\]^_`{|}~"':
            c+=1
         elif i.isdigit():
            d+=1
      if a>=1 and b>=1 and c>=1 and d>=1 and
         a+b+c+d==len(password):
      return True
      else:
         return False
s = "@bCd12#4"
ob = Solution()
print(ob.solve(s))

输入

"@bCd12#4"

输出

True

相关文章


有用资源