转载请标明出处:
http://blog.csdn.net/DJY1992/article/details/72845025
本文出自:【奥特曼超人的博客】
编写一个函数,接收一个字符串作为参数,判断该字符串作为密码的话其安全强度如何。如果字符串中只包含大写字母、小写字母、数字字符或标点符号中的一种则为弱密码,包含两种为中低安全密码,包含三种为中高安全密码,包含四种则为强密码。
老师说,不许使用正则表达式哦
大家可以在群里讨论,或者直接把你的答案写在评论里哦~
题目地址:http://blog.csdn.net/baiyuzhong2012/article/details/72841797
这里留下我的答案:
#舍弃了
def pwdType(str):
"""
if(str.isupper()|str.istitle()|str.isalnum()):
#所有单词都是首字母大写
if(str.istitle()):
#所有字符都是大写
if(str.isupper()):
#所有字符都是小写
if(str.islower()):
#所有字符都是数字
if(str.isdigit()):
# 所有字符都是字母
if(str.isalpha()):
#所有字符都是数字或者字母
if(str.isalnum()):
"""
return
#拆分矩阵查询
def isPwdLevel(strs):
#模拟底层
special = ['!','@','#','$','%','^','&','*','(',')','-','_','+','=','{','}',';',':','[',']',';',':','\"','\\','|',',','<','.','>','/','?','~','`']
engUpper = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
engLower = ['a','b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
engNums = ['0','1','2','3','4','5','6','7','8','9']
abc = list(strs)
flag = 0
flagSp = 0
flagUp = 0
flagLo = 0
flagNu = 0
for i in abc:
for k in special:
if(i==k):
print("包含特殊字符")
flagSp = 1
for k in engLower:
if(i==k):
print("包含小写字母")
flagUp = 1
for k in engUpper:
if(i==k):
print("包含大写字母")
flagLo = 1
for k in engNums:
if(i==k):
print("包含数字")
flagNu = 1
#编写一个函数,接收一个字符串作为参数,判断该字符串作为密码的话其安全强度如何。
#如果字符串中只包含大写字母、小写字母、数字字符或标点符号中的一种则为弱密码,
#包含两种为中低安全密码
#包含三种为中高安全密码
#包含四种则为强密码。
flag = (flagSp+flagNu+flagLo+flagUp)
return flag
这样写方便操作元素,在Main方法里面调用一下就完成了。
if __name__=="__main__":
#pwd = "Ab4##\""
pwd = "Karl-Dujinyang-309933706@qq.com"
ret = isPwdLevel(pwd)
vat = isinstance(ret, int)
print(ret)
if(vat == True):
if(ret == 4):
print("-强密码-")
elif(ret == 3):
print("-中高安全密码-")
elif(ret == 2):
print("-中低安全密码-")
elif(ret == 1):
print("-弱密码-")
运行效果:
(如有 错误或者更优方法欢迎指出)
|| 版权声明:本文为博主杜锦阳原创文章,转载请注明出处。