我需要一些帮助,弄清楚如何使一个函数检查一串条件的字符串。Python密码检查器
密码必须长至少5个字符
密码必须包含至少一个大写字母
密码必须包含至少两个数字
密码不能包含字符“E”或“e”
密码必须包含t个最低一个特殊符号:!,@,#,$,%,^,&
现在这一切,我有
def passwordChecker(password):
'''
'''
caps = sum(1 for c in password if c.isupper())
nums = sum(1 for c in password if c.isdigit())
symb = any(c in password for c in '[email protected]#$%^&')
note = any(c in password for c in 'Ee')
if len(password) <5:
return False
elif caps < 1:
return False
elif nums < 1:
return False
elif symb == False:
return False
else:
return True
编辑**
刚刚意识到我还必须检查是否有常用的密码,如'密码'或'111111',我真的不知道我会如何处理这个问题。
import re
def passwordChecker(password):
return all(re.search(pattern, password) for pattern in
('.{5}', '[A-Z]', '\d.*\d', '^[^Ee]*$', '[[email protected]#$%^&]'))
使用五个几乎无效,五个几乎没有有效的测试演示(之一:
您忘记检查'note == False' –
而'nums'应该是'nums <2'而不是 –
您需要确定哪些值有资格作为常用密码,然后检查它们。 – TigerhawkT3