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
广告