|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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
- {'.', '\\'}
复制代码
|
-
题目
|