鱼C论坛

 找回密码
 立即注册
查看: 1544|回复: 9

[已解决]14讲动动手作业问题

[复制链接]
发表于 2020-11-25 19:12:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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
        
最佳答案
2020-11-26 12:37:35
逆鳞丶樱之羽 发表于 2020-11-26 11:27
这里为什么不是三个特殊符号啊,为什么couting是2,是characters变量中'\\'(这个表示反斜杠)这个的问题吗 ...

再给你点提示
请输入需要检查的密码组合:iwyui285278\ywytu.qytuq{}
assert length > 16
您的密码安全级别评定为:中
                       请按以下方式提升您的密码安全级别:
                                 1.密码必须由数字、字母及特殊字符三种组合
                                 2.密码只能由字母开头
                                 3.密码长度不能低于16位
是否继续输入(y/n):
输入异常,强制退出
>>> past_count
{'.', '\\'}

题目

题目
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-25 19:21:31 | 显示全部楼层
可以发一下大于16个字符的代码段吗?
请输入需要检查的密码组合:/*-/*-/*-/*-/*-/
assert length > 16
您的密码安全级别评定为:高                       请继续保持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-25 19:27:02 | 显示全部楼层
逃兵 发表于 2020-11-25 19:21
可以发一下大于16个字符的代码段吗?

iwyui285278\ywytu.qytuq{}
这个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-25 19:46:37 | 显示全部楼层
逆鳞丶樱之羽 发表于 2020-11-25 19:27
iwyui285278\ywytu.qytuq{}
这个

没有发现,我只发特殊符号,没有字母没有数字
却认为我是高级密码吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-25 21:13:12 | 显示全部楼层
逃兵 发表于 2020-11-25 19:46
没有发现,我只发特殊符号,没有字母没有数字
却认为我是高级密码吗

好的。
谢谢,我已经改好了,但上个问题还存在,要是有想到什么,请回复我。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-26 08:17:12 | 显示全部楼层
逆鳞丶樱之羽 发表于 2020-11-25 21:13
好的。
谢谢,我已经改好了,但上个问题还存在,要是有想到什么,请回复我。

想整简单点还是复杂点呢
请输入需要检查的密码组合:iwyui285278\ywytu.qytuq{}
assert length > 16
您的密码安全级别评定为:中
                       请按以下方式提升您的密码安全级别:
                                 1.密码必须由数字、字母及特殊字符三种组合
                                 2.密码只能由字母开头
                                 3.密码长度不能低于16位
是否继续输入(y/n):
输入异常,强制退出
>>> length
25
>>> couting
2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-26 09:17:17 | 显示全部楼层
可以用正则进行匹配
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-26 11:27:17 From FishC Mobile | 显示全部楼层
逃兵 发表于 2020-11-26 08:17
想整简单点还是复杂点呢

这里为什么不是三个特殊符号啊,为什么couting是2,是characters变量中'\\'(这个表示反斜杠)这个的问题吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-26 12:37:35 | 显示全部楼层    本楼为最佳答案   
逆鳞丶樱之羽 发表于 2020-11-26 11:27
这里为什么不是三个特殊符号啊,为什么couting是2,是characters变量中'\\'(这个表示反斜杠)这个的问题吗 ...

再给你点提示
请输入需要检查的密码组合:iwyui285278\ywytu.qytuq{}
assert length > 16
您的密码安全级别评定为:中
                       请按以下方式提升您的密码安全级别:
                                 1.密码必须由数字、字母及特殊字符三种组合
                                 2.密码只能由字母开头
                                 3.密码长度不能低于16位
是否继续输入(y/n):
输入异常,强制退出
>>> past_count
{'.', '\\'}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-26 12:44:24 | 显示全部楼层

好的,我知道为什么了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-17 06:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表