鱼C论坛

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

[已解决]设置高级密码

[复制链接]
发表于 2020-6-19 10:37:27 | 显示全部楼层 |阅读模式

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

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

x
symple=r''''!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
num='0123456789'
word='abcdefghigklmnopqrstxwyzABCDEFGHIJKLMNOPQRSTXWYZ'
pasword=input('请输入正确的密码组合:')
length=len(pasword)
while (pasword.isspace() or length==0) :#判断密码是否仅有空格或者字符串为零
    pasword=input('您输入的密码为空,请重新输入:')
if length<=8 :
    flag_len =1
elif 8<length<=16:
    flag_len=2
else:
    flag_len = 3
flag_con=0
#判断是否含有字符
for each in pasword:
    if each in symple:
        flag_con+=1
        break
#判断是否含有字母
for each in pasword:
    if each in word:
        flag_con+=1
        break
for each in pasword:
    if each in num:
        flag_con+=1
        break
while length>0:
    if flag_len==1 or flag_con==1:
        print('输入的密码等级较低')
    if flag_len==2 or flag_con==2:
        print('密码等级为中等\n')
    pasword = input('您输入的密码等级过低,请重新输入:')
    if flag_len==3 or flag_con==3:
        print('密码等级较高\n')
        print('请继续保持!!!')
    break
运行代码到重新输入的时候不会进行判断直接结束了。我想弄成只弄成密码等级高的时候才结束运行,其他情况重新设置密码。新手请大佬指导!
最佳答案
2020-6-19 11:02:04
本帖最后由 Twilight6 于 2020-6-19 11:03 编辑
洋si子 发表于 2020-6-19 10:59
躬身指导者皆我楷模,不满老师说这个程序我已经修修补补两天了老师帮我看看这个代码其 ...


symple = r''''!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
num = '0123456789'
word = 'abcdefghigklmnopqrstxwyzABCDEFGHIJKLMNOPQRSTXWYZ'
pasword = input('请输入正确的密码组合:')
length = len(pasword)
while True:
    while (pasword.isspace() or length == 0):  # 判断密码是否仅有空格或者字符串为零
        pasword = input('您输入的密码为空,请重新输入:')
        length = len(pasword)
    if length <= 8:
        flag_len = 1
    elif 8 < length <= 16:
        flag_len = 2
    else:
        flag_len = 3
    flag_con = 0
    # 判断是否含有字符
    for each in pasword:
        if each in symple:
            flag_con += 1
            break
    # 判断是否含有字母
    for each in pasword:
        if each in word:
            flag_con += 1
            break
    for each in pasword:
        if each in num:
            flag_con += 1
            break

    if flag_len == 3 or flag_con == 3:
        print('密码等级较高\n')
        print('请继续保持!!!')
        break
    if flag_len == 1 or flag_con == 1:
        print('输入的密码等级较低')
    if flag_len == 2 or flag_con == 2:
        print('密码等级为中等\n')
    pasword = input('您输入的密码等级过低,请重新输入:')
    length = len(pasword)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-19 10:40:05 | 显示全部楼层
将 break 移动到 判断高级密码的 代码块里去就好了

symple=r''''!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
num='0123456789'
word='abcdefghigklmnopqrstxwyzABCDEFGHIJKLMNOPQRSTXWYZ'
pasword=input('请输入正确的密码组合:')
length=len(pasword)
while (pasword.isspace() or length==0) :#判断密码是否仅有空格或者字符串为零
    pasword=input('您输入的密码为空,请重新输入:')
if length<=8 :
    flag_len =1
elif 8<length<=16:
    flag_len=2
else:
    flag_len = 3
flag_con=0
#判断是否含有字符
for each in pasword:
    if each in symple:
        flag_con+=1
        break
#判断是否含有字母
for each in pasword:
    if each in word:
        flag_con+=1
        break
for each in pasword:
    if each in num:
        flag_con+=1
        break
while length>0:
    if flag_len==1 or flag_con==1:
        print('输入的密码等级较低')
    if flag_len==2 or flag_con==2:
        print('密码等级为中等\n')
    pasword = input('您输入的密码等级过低,请重新输入:')
    if flag_len==3 or flag_con==3:
        print('密码等级较高\n')
        print('请继续保持!!!')
        break
    
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-19 10:47:11 | 显示全部楼层
Twilight6 发表于 2020-6-19 10:40
将 break 移动到 判断高级密码的 代码块里去就好了

请输入正确的密码组合:
您输入的密码为空,请重新输入:123
您输入的密码为空,请重新输入:22
您输入的密码为空,请重新输入:2222
您输入的密码为空,请重新输入:
当第一次输入的是空格然后让再次输入为什么输入了数字还提示密码为空,程序不能向下运行呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-19 10:49:21 | 显示全部楼层
洋si子 发表于 2020-6-19 10:47
请输入正确的密码组合:
您输入的密码为空,请重新输入:123
您输入的密码为空,请重新输入:22


因为你忘记重新输入密码时候将密码长度重新赋值了
symple = r''''!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
num = '0123456789'
word = 'abcdefghigklmnopqrstxwyzABCDEFGHIJKLMNOPQRSTXWYZ'
pasword = input('请输入正确的密码组合:')
length = len(pasword)
while (pasword.isspace() or length == 0):  # 判断密码是否仅有空格或者字符串为零
    pasword = input('您输入的密码为空,请重新输入:')
    length = len(pasword)
if length <= 8:
    flag_len = 1
elif 8 < length <= 16:
    flag_len = 2
else:
    flag_len = 3
flag_con = 0
# 判断是否含有字符
for each in pasword:
    if each in symple:
        flag_con += 1
        break
# 判断是否含有字母
for each in pasword:
    if each in word:
        flag_con += 1
        break
for each in pasword:
    if each in num:
        flag_con += 1
        break
while length > 0:
    if flag_len == 1 or flag_con == 1:
        print('输入的密码等级较低')
    if flag_len == 2 or flag_con == 2:
        print('密码等级为中等\n')
    pasword = input('您输入的密码等级过低,请重新输入:')
    if flag_len == 3 or flag_con == 3:
        print('密码等级较高\n')
        print('请继续保持!!!')
        break
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-19 10:53:02 | 显示全部楼层
Twilight6 发表于 2020-6-19 10:40
将 break 移动到 判断高级密码的 代码块里去就好了

您输入的密码等级过低,请重新输入:5552eeeeddd######################$$$$$$$$$$$$$$$ddddddddddddddd
输入的密码等级较低
密码等级为中等

您输入的密码等级过低,请重新输入:ddddddddddddd555555555555888888?????????
输入的密码等级较低
密码等级为中等

您输入的密码等级过低,请重新输入:
老师 我刚刚运行了您的代码,可是设置了高级密码还是再循环体内一直显示密码等级较低让重新输入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-19 10:54:08 | 显示全部楼层
洋si子 发表于 2020-6-19 10:53
您输入的密码等级过低,请重新输入:5552eeeeddd######################$$$$$$$$$$$$$$$ddddddddddddddd
...


  我只帮你解决你刚刚提出的问题,什么时候叫我帮你解决所有代码中的问题呢?

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

使用道具 举报

发表于 2020-6-19 10:56:50 | 显示全部楼层
洋si子 发表于 2020-6-19 10:47
请输入正确的密码组合:
您输入的密码为空,请重新输入:123
您输入的密码为空,请重新输入:22

pasword = input('您输入的密码等级过低,请重新输入:')
这行代码也有BUG,你放在了低级密码、中级密码判断之后,也就是数如果第一次输入的就是正确的高级密码,你的代码还是会报错密码低级,
所以你需要将这行代码放到前面两个IF中去。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-19 10:59:51 | 显示全部楼层
Twilight6 发表于 2020-6-19 10:54
我只帮你解决你刚刚提出的问题,什么时候叫我帮你解决所有代码中的问题呢?

我现在帮你 ...

躬身指导者皆我楷模,不满老师说这个程序我已经修修补补两天了老师帮我看看这个代码其他问题。谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-19 11:00:22 | 显示全部楼层
洋si子 发表于 2020-6-19 10:59
躬身指导者皆我楷模,不满老师说这个程序我已经修修补补两天了老师帮我看看这个代码其 ...

等等 上面代码还是有错误 稍等下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-19 11:02:04 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-6-19 11:03 编辑
洋si子 发表于 2020-6-19 10:59
躬身指导者皆我楷模,不满老师说这个程序我已经修修补补两天了老师帮我看看这个代码其 ...


symple = r''''!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
num = '0123456789'
word = 'abcdefghigklmnopqrstxwyzABCDEFGHIJKLMNOPQRSTXWYZ'
pasword = input('请输入正确的密码组合:')
length = len(pasword)
while True:
    while (pasword.isspace() or length == 0):  # 判断密码是否仅有空格或者字符串为零
        pasword = input('您输入的密码为空,请重新输入:')
        length = len(pasword)
    if length <= 8:
        flag_len = 1
    elif 8 < length <= 16:
        flag_len = 2
    else:
        flag_len = 3
    flag_con = 0
    # 判断是否含有字符
    for each in pasword:
        if each in symple:
            flag_con += 1
            break
    # 判断是否含有字母
    for each in pasword:
        if each in word:
            flag_con += 1
            break
    for each in pasword:
        if each in num:
            flag_con += 1
            break

    if flag_len == 3 or flag_con == 3:
        print('密码等级较高\n')
        print('请继续保持!!!')
        break
    if flag_len == 1 or flag_con == 1:
        print('输入的密码等级较低')
    if flag_len == 2 or flag_con == 2:
        print('密码等级为中等\n')
    pasword = input('您输入的密码等级过低,请重新输入:')
    length = len(pasword)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 07:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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