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
- 如果i是大寫字母,則
- 如果 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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP