零基础之第15讲作业之经典不知错在哪???
我的码:print('~~~~~~~~~~密码安全性检查代码~~~~~~~~~~')
A=input('请输入需要检查的密码组合:')
listzimu=['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']
listshuzi=
listA=[]
for i in A:#将字符串转化成列表,方便操作。
listA.append(i)
listfu=['~','!','@','#','$','%','^','&','*','(',')','_','=','-','/',',','.','?','<','>',';',':','[',']','{','}','|','\\']
listxing=listA[:]#创造替身
a=0
b=0
c=0
d=0
for i in listA:#判断是否有特殊字符
if i in listfu:
a=1
for o in listA:#判断是否有数字
if o in listshuzi:
b=1
for p in listA:#判断是否有字母
if p in listzimu
c=1
d=a+b+c
for ii in listxing:#去除特殊字符
if ii in listfu:
listxing.remove(ii)
for oo in listxing:#去除字母
if oo in listzimu:
listxing.remove(oo)
for pp in listxing :#去除数字
if pp in listshuzi:
listxing.remove(pp)
if len(listxing)==0 :
if int(d)==3 and A.istitle() and len(listA)>=16:
print('您的密码安全级别评定为:高\n请继续保持')
if int(d)==2 andlen(listA)>=8:
print('您的密码安全级别评定为:中\n请按以下方式提升您的密码安全级别:\n 1. 密码必须由数字、字母及特殊字符三种组合\n 2. 密码只能由字母开头\n3. 密码长度不能低于16位')
if int(d)==1 and int(c)==0 and len(listA)<=8:
print('您的密码安全级别评定为:低\n请按以下方式提升您的密码安全级别:\n 1. 密码必须由数字、字母及特殊字符三种组合\n 2. 密码只能由字母开头\n3. 密码长度不能低于16位')
else:
print('您输入了其它字符,请按照以下要求输入:\n1. 密码必须由数字、字母及特殊字符三种组合\n 2. 密码只能由字母开头\n3. 密码长度不能低于16位')
跑出来:
请输入需要检查的密码组合:Lshxbasxanxx8347345634\\\xasx
您输入了其它字符,请按照以下要求输入:1. 密码必须由数字、字母及特殊字符三种组合
2. 密码只能由字母开头
3. 密码长度不能低于16位
Process finished with exit code 0
题目:
动动手:
0. 请写一个密码安全性检查的代码代码:check.py
# 密码安全性检查代码
#
# 低级密码要求:
# 1. 密码由单纯的数字或字母组成
# 2. 密码长度小于等于8位
#
# 中级密码要求:
# 1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
# 2. 密码长度不能低于8位
#
# 高级密码要求:
# 1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
# 2. 密码只能由字母开头
# 3. 密码长度不能低于16位
程序演示:
见图片
print('~~~~~~~~~~密码安全性检查代码~~~~~~~~~~')
A=input('请输入需要检查的密码组合:')
listzimu=['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',
'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']
listshuzi=['0','1','2','3','4','5','6','7','8','9']
listA=[]
for i in A:#将字符串转化成列表,方便操作。
listA.append(i)
listfu=['~','!','@','#',','%','^','&','*','(',')','_','=','-','/',',','.','?','<','>',';',':','[',']','{','}','|','\\']
listxing=listA[:]#创造替身
a=0
b=0
c=0
d=0
for i in listA:#判断是否有特殊字符
if i in listfu:
a=1
for o in listA:#判断是否有数字
if o in listshuzi:
b=1
for p in listA:#判断是否有字母
if p in listzimu:
c=1
d=a+b+c
for ii in listxing[:]:#去除特殊字符
if ii in listfu:
listxing.remove(ii)
for oo in listxing[:]:#去除字母
if oo in listzimu:
listxing.remove(oo)
for pp in listxing[:] :#去除数字
if pp in listshuzi:
listxing.remove(pp)
if len(listxing)==0 :
if int(d)==3 and A.istitle() and len(listA)>=16:
print('您的密码安全级别评定为:高\n请继续保持')
if int(d)==2 andlen(listA)>=8:
print('您的密码安全级别评定为:中\n请按以下方式提升您的密码安全级别:\n 1. 密码必须由数字、字母及特殊字符三种组合\n 2. 密码只能由字母开头\n3. 密码长度不能低于16位')
if int(d)==1 and int(c)==0 and len(listA)<=8:
print('您的密码安全级别评定为:低\n请按以下方式提升您的密码安全级别:\n 1. 密码必须由数字、字母及特殊字符三种组合\n 2. 密码只能由字母开头\n3. 密码长度不能低于16位')
else:
print('您输入了其它字符,请按照以下要求输入:\n1. 密码必须由数字、字母及特殊字符三种组合\n 2. 密码只能由字母开头\n3. 密码长度不能低于16位')
逃兵 发表于 2021-9-6 10:50
不行啊,不是这个原因{:5_104:} print('~~~~~~~~~~密码安全性检查代码~~~~~~~~~~')
A=input('请输入需要检查的密码组合:')
listzimu=['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',
'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']
listshuzi=['0','1','2','3','4','5','6','7','8','9']
listA=[]
for i in A:#将字符串转化成列表,方便操作。
listA.append(i)
listfu=['~','!','@','#',',','%','^','&','*','(',')','_','=','-','/',',','.','?','<','>',';',':','[',']','{','}','|','\\']
listxing=listA[:]#创造替身
a=0
b=0
c=0
d=0
for i in listA:#判断是否有特殊字符
if i in listfu:
a=1
for o in listA:#判断是否有数字
if o in listshuzi:
b=1
for p in listA:#判断是否有字母
if p in listzimu:
c=1
d=a+b+c
for ii in listxing[:]:#去除特殊字符
if ii in listfu:
listxing.remove(ii)
for oo in listxing[:]:#去除字母
if oo in listzimu:
listxing.remove(oo)
for pp in listxing[:] :#去除数字
if pp in listshuzi:
listxing.remove(pp)
if len(listxing)==0 :
if int(d)==3 and (A in listzimu) and len(listA)>=16:
print('您的密码安全级别评定为:高\n请继续保持')
if int(d)==2 andlen(listA)>=8:
print('您的密码安全级别评定为:中\n请按以下方式提升您的密码安全级别:\n 1. 密码必须由数字、字母及特殊字符三种组合\n 2. 密码只能由字母开头\n3. 密码长度不能低于16位')
if int(d)==1 and int(c)==0 and len(listA)<=8:
print('您的密码安全级别评定为:低\n请按以下方式提升您的密码安全级别:\n 1. 密码必须由数字、字母及特殊字符三种组合\n 2. 密码只能由字母开头\n3. 密码长度不能低于16位')
else:
print('您输入了其它字符,请按照以下要求输入:\n1. 密码必须由数字、字母及特殊字符三种组合\n 2. 密码只能由字母开头\n3. 密码长度不能低于16位')
本帖最后由 傻眼貓咪 于 2021-9-6 14:16 编辑
我的代碼:
# -------------- 函數:判斷字符串裡是否存在數字,英文字母或符號 --------------
def isContainsChar(p: str) -> bool:
return any()
def isContainsDigit(p: str) -> bool:
return any()
def isContainsSymbol(p: str) -> bool:
return any({}|\\\""") for i in p])
# ----------------- 函數:判斷密碼強度是否高級,中級或低級 -----------------
def isHigh(p: str) -> bool:
if len(p) < 16 or p.lower() not in "abcdefghijklmnopqrstuvwxyz":
return False
return isContainsChar(p) and isContainsDigit(p) and isContainsSymbol(p)
def isMedium(p: str) -> bool:
if len(p) < 8:
return False
return (isContainsChar(p) and isContainsDigit(p) and (not isContainsSymbol(p)))\
or (isContainsChar(p) and isContainsSymbol(p) and (not isContainsDigit(p)))\
or (isContainsDigit(p) and isContainsSymbol(p) and (not isContainsChar(x)))
def isLow(p: str) -> bool:
if len(p) > 8:
return False
return all()
# ------------------------- 函數:判斷密碼合法性 -------------------------
def check(p: 'passwrods') -> str:
if isHigh(p):
return "高級密碼"
elif isMedium(p):
return "中級密碼"
elif isLow(p):
return "低級密碼"
else:
return "密碼不合法"
# ------------------------------- 主函數 -------------------------------
def main():
"""檢測密碼類型"""
print(check(input("請輸入密碼:\n")))
# --------------------------- 模塊內執行區域 ---------------------------
if __name__ == "__main__":
print(main.__doc__)
main()
页:
[1]