1 问题 编写代码验证密码是否满足以下条件:长度位于[6,20]之间,必须包含至少一个大写字母,一个小写字母,一个数字和一个特殊字符,最终返回True或False,并写明不符合的原因。 2 方法 借助于正则表达式检验密码是否规范,需先导入python中的re模块,re.findall(r"[a-z]", password)则表示在password中必须搜索到小写字母,其他检测以此类推,而特殊字符的检测需要表示为re.findall(r"[^0-9A-Za-z]", password),添加一个'^’表示除0-9A-Za-z以外的字符。 代码清单1 import re def check_password(password): if not 6 <= len(password) <= 20: return False, "密码必须在6~20之间" if not re.findall(r"[a-z]", password): return False, "必须包含至少一个小写字母" if not re.findall(r"[A-Z]", password): return False, "必须包含至少一个大写字母" if not re.findall(r"[0-9]", password): return False, "必须包含至少一个数字" if not re.findall(r"[^0-9A-Za-z]", password): return False, "必须包含至少一个特殊字符" return True, None print("Helloworld*678", check_password("Helloworld*678")) print("Helloworld#", check_password("Helloworld#")) print("helloworld#678", check_password("helloworld#678")) print("Helloworld678", check_password("Helloworld678")) 3 结语 针对验证密码格式是否规范的问题,提出导入re模块对相关条件依次进行检验的方法,通过此次实验,证明该方法是有效的。 |
|