马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 逆鳞丶樱之羽 于 2020-11-25 21:18 编辑
题目如下图
程序代码我已经写好了,我觉的思路没有问题(代码完全可以运行),只是存在个问题:
思路:通过集合的唯一性计算特殊符号的数量。
但当密码长度大于等于16时,我输入字母,数字和多个特殊字符组合,但并没有显示密码程度为高。
求解。
代码如下。
节点判断我已经写好了。
请告诉我思路或是否是程序问题等的错误,尽量不要改好写代码回复我。
要是还有什么问题,请回复我,不要帮我改好!(想锻炼思维),谢谢配合。characters = ['~','!','@','#',','%','^','&','*','()','_','=','-','/',',','.','?','<>',';',':','[]','{}','|','\\']
active = True
while(active):
password = input('请输入需要检查的密码组合:')
length = len(password)
couting = 0
past_count = set()
if password.count(' ') > 0:
print('输入格式错误')
else:
if length <= 8:
print('''您的密码安全级别评定为:低
请按以下方式提升您的密码安全级别:
1.密码必须由数字、字母及特殊字符三种组合
2.密码只能由字母开头
3.密码长度不能低于16位''')
print('assert length<8')
elif password.isalnum():
print('''您的密码安全级别评定为:低
请按以下方式提升您的密码安全级别:
1.密码必须由数字、字母及特殊字符三种组合
2.密码只能由字母开头
3.密码长度不能低于16位''')
print('assert isalnum')
elif 8 < length < 16:
for ct in range(len(password)):
if password[ct] in characters:
past_count.add(password[ct])
couting = len(past_count)
print('assert 8 < length <16')
if couting >= 2:
print('''您的密码安全级别评定为:中
请按以下方式提升您的密码安全级别:
1.密码必须由数字、字母及特殊字符三种组合
2.密码只能由字母开头
3.密码长度不能低于16位''')
else:
print('''您的密码安全级别评定为:低
请按以下方式提升您的密码安全级别:
1.密码必须由数字、字母及特殊字符三种组合
2.密码只能由字母开头
3.密码长度不能低于16位''')
elif length >= 16:
for ct in range(len(password)):
if password[ct] in characters:
past_count.add(password[ct])
couting = len(past_count)
print('assert length > 16')
if couting >= 3:
if password.istitle():
print('''您的密码安全级别评定为:高
请继续保持''')
else:
print('''您的密码安全级别评定为:中
请按以下方式提升您的密码安全级别:
1.密码必须由数字、字母及特殊字符三种组合
2.密码只能由字母开头
3.密码长度不能低于16位''')
elif 2 <= couting < 3 :
print('''您的密码安全级别评定为:中
请按以下方式提升您的密码安全级别:
1.密码必须由数字、字母及特殊字符三种组合
2.密码只能由字母开头
3.密码长度不能低于16位''')
elif couting <= 1:
print('''您的密码安全级别评定为:低
请按以下方式提升您的密码安全级别:
1.密码必须由数字、字母及特殊字符三种组合
2.密码只能由字母开头
3.密码长度不能低于16位''')
else:
print('未知错误')
guess = input('是否继续输入(y/n):')
guess = guess.upper()
if guess == 'Y':
continue
elif guess == 'N':
break
else:
print('输入异常,强制退出')
break
再给你点提示 请输入需要检查的密码组合:iwyui285278\ywytu.qytuq{}
assert length > 16
您的密码安全级别评定为:中
请按以下方式提升您的密码安全级别:
1.密码必须由数字、字母及特殊字符三种组合
2.密码只能由字母开头
3.密码长度不能低于16位
是否继续输入(y/n):
输入异常,强制退出
>>> past_count
{'.', '\\'}
|