运行环境:python2.7
需求如下:"""检查哪个字符串用密码合适。1.密码至少在8字以上20字以下2.密码由英文字母,数字和特殊文字组成3. 至少应包括两个数字4.应包括一个以上的大写字母5.特殊文字只能用( ___ ? !)三个6.以密码是否合适为结果返还。 此时不适合时,详细理由也一并输出,- 不超过8个字或超过20个字:1- 2个以下数字:2- 没有大写字母:3- 无特殊文字:4- 其他不可接受的文字:57. 规则的优先顺序是:- 字数检查- 英文字母检查- 数字检查- 大写字母检查- 特殊文字检查def isValid(passwd) :‘’’ input : passwordreturn value : isValid – True or False reason – 1 ~ 5‘’’pass # 这部分完成#mainpassword = input('Enter your password: ')pass # 这部分完成Enter your password: Aqwefrji52!有效口令。可以使用。Enter your password: qoiuwer?dA3密码无效!请在密码中至少包含两个数字。Enter your password: Qoieqwoh458%$密码无效!包含无效字符。Enter your password: A451asfㅁ니ㅏㅓㄻ密码无效!包含无效字符。Enter your password: a45alskfjlfas密码无效!请在密码中至少包含一个字符。"""
代码实现:
# -*- coding: utf-8 -*-def isValid(passwd):shuZi_num = 0lower_num = 0upper_num = 0teShuZiFu_num = 0wuXiaoZiFu_num = 0# 字数检查if len(passwd) > 20 or len(passwd) < 8:return "密码无效:不超过8个字或超过20个字:1"# 包含字符数量统计for s in passwd:if s.isdigit():shuZi_num += 1elif s.islower():lower_num += 1elif s.isupper():upper_num += 1elif s == "_" or s == "?" or s == "!":teShuZiFu_num += 1else:wuXiaoZiFu_num += 1# 英文字母检查if lower_num <= 0 and upper_num <= 0:return "密码无效:未包含英文字母"# 数字检查if shuZi_num < 2:return "密码无效:数字少于两个:2"# 大写字母检查if upper_num < 1:return "密码无效:没有大写字母:3"# 特殊文字检查if wuXiaoZiFu_num > 0:return "密码无效:包含无效字符:5"if teShuZiFu_num <= 0:return "密码无效:未包含特殊文字:4"else:return "有效口令。可以使用。"if __name__ == "__main__":# 接收控制台输入password = raw_input('Enter your password: ')print "password: ", password# 判断密码是否符合要求print isValid(password)