鱼C论坛

 找回密码
 立即注册
查看: 1679|回复: 3

[已解决]救救孩子,两天了

[复制链接]
发表于 2020-12-9 22:53:36 | 显示全部楼层 |阅读模式

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

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

x
key=input('请输入需要检查的密码组合:')
spkey=('~','`','!','@','#','$','%','^','&','*','(',')','_','-','=','+','{','}','[',']',':',';','<','>',',','.','/','?','\\','|')

isAright=False
isok=True
for i in spkey[:]:
    for j in key[:]:
        if j == i:
            isAright=isok
a=key.isalpha()
d=key.isdecimal()
while a==False and d==False and len(key) >= 16 and (99<=ord(key[0])<=122 or 65<=ord(key[0])<=90):

    print('您的密码安全级别评定为:高',
          '\n','请继续保持')
    break
else:
    while a==False and d==False and len(key)>=8 or a==False and isAright==True and len(key)>=8 or d==False and isAright==True and len(key)>=8:
        print('您的密码安全级别评定为:中',
             '\n','请按照以下方式提升您的密码安全级别:',
             '\n','\t','1.密码必须由数字、字母及特殊字符三者组合',
             '\n','\t','2.密码只能由字母开头',
             '\n','\t','3.密码长度不能低于16位')
        key=input('请输入需要检查的密码组合:')
    else:
        while a==True and len(key) <= 8 or d==True and len(key) <= 8:
            print('您的密码安全级别评定为:低',
            '\n','请按照以下方式提升您的密码安全级别:',
            '\n','\t','1.密码必须由数字、字母及特殊字符三者组合',
            '\n','\t','2.密码只能由字母开头',
            '\n','\t','3.密码长度不能低于16位')
            key=input('请输入需要检查的密码组合:')
        else:
            while len(key)<8:
                print('您的密码安全级别评定为:低',
            '\n','请按照以下方式提升您的密码安全级别:',
            '\n','\t','1.密码必须由数字、字母及特殊字符三者组合',
            '\n','\t','2.密码只能由字母开头',
            '\n','\t','3.密码长度不能低于16位')
                key=input('请输入需要检查的密码组合:')
            else:
                print('您的密码安全级别评定为:低',
            '\n','请按照以下方式提升您的密码安全级别:',
            '\n','\t','1.密码必须由数字、字母及特殊字符三者组合',
            '\n','\t','2.密码只能由字母开头',
            '\n','\t','3.密码长度不能低于16位')
                key=input('请输入需要检查的密码组合:')
            
            



d9689df91c8c1f4e40ad3dd2112b290.png 7ecaaf1db5ec85fab1a25cc73bea4d4.png

最佳答案
2020-12-10 01:10:51
本帖最后由 jackz007 于 2020-12-10 01:14 编辑

        给你来个跟小甲鱼完全不同的代码
mess = '''请按以下方式提升你的密码安全级别:
\t1.密码必须由数字、字母及特殊字符三种组合
\t2.密码只能由字母开头
\t3.密码长度不能低于16位'''

key = input('请输入需要检查的密码组合:') . strip()
spkey = r'~`!@#$%^&*()_-=+{}[]:;<>,./?\|'
a = sum(1 for x in key if x . isalpha())    # 字母计数
d = sum(1 for x in key if x . isdigit())    # 数字计数
s = sum(1 for x in key if x in spkey)       # 符号计数
if key[0] . isalpha and len(key) >= 16 and a > 0 and d > 0 and s > 0:
    print('您的密码安全级别评定为:高')
    print('请继续保持') 
elif len(key) < 8 or len(key) == a or len(key) == d or len(key) == s:
    print('您的密码安全级别评定为:低')
    print(text)
else:
    print('您的密码安全级别评定为:中')
    print(mess)         
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-9 23:07:28 | 显示全部楼层
以输入的内容看
a=key.isalpha()为False,不都是字母
d=key.isdecimal()为False,不是数字
a==False and d==False and len(key) >= 16 and (99<=ord(key[0])<=122 or 65<=ord(key[0])<=90)值为True,所以得到级别为高的不正确结论

评分

参与人数 1荣誉 +5 贡献 +3 收起 理由
silence_bla + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-9 23:14:53 | 显示全部楼层
本帖最后由 笨鸟学飞 于 2020-12-9 23:20 编辑

有几处错误,代码太长了懒得看了
1、while循环考虑不周到,要善用continue和break
2、while循环和input()函数没有结合考虑
3、算法考虑有失误的地方,既然考虑用while就应先分析是否低,再是否中,最后是否高

整体结构建议为:
while True:
     password = input('请输入要检查的密码')
     '''是否为-低-比较算法
      是则continue执行下一次循环
      否则继续'''
      

评分

参与人数 1荣誉 +5 贡献 +3 收起 理由
silence_bla + 5 + 3 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-10 01:10:51 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2020-12-10 01:14 编辑

        给你来个跟小甲鱼完全不同的代码
mess = '''请按以下方式提升你的密码安全级别:
\t1.密码必须由数字、字母及特殊字符三种组合
\t2.密码只能由字母开头
\t3.密码长度不能低于16位'''

key = input('请输入需要检查的密码组合:') . strip()
spkey = r'~`!@#$%^&*()_-=+{}[]:;<>,./?\|'
a = sum(1 for x in key if x . isalpha())    # 字母计数
d = sum(1 for x in key if x . isdigit())    # 数字计数
s = sum(1 for x in key if x in spkey)       # 符号计数
if key[0] . isalpha and len(key) >= 16 and a > 0 and d > 0 and s > 0:
    print('您的密码安全级别评定为:高')
    print('请继续保持') 
elif len(key) < 8 or len(key) == a or len(key) == d or len(key) == s:
    print('您的密码安全级别评定为:低')
    print(text)
else:
    print('您的密码安全级别评定为:中')
    print(mess)         

评分

参与人数 1荣誉 +5 贡献 +3 收起 理由
silence_bla + 5 + 3 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-17 03:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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