Python程式檢查密碼是否符合要求


假設我們有一個字串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是數字,則
      • 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

更新於:2020年10月6日

562 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告