洋si子 发表于 2020-6-19 10:37:27

设置高级密码

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
运行代码到重新输入的时候不会进行判断直接结束了。我想弄成只弄成密码等级高的时候才结束运行,其他情况重新设置密码。新手请大佬指导!

Twilight6 发表于 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
   

洋si子 发表于 2020-6-19 10:47:11

Twilight6 发表于 2020-6-19 10:40
将 break 移动到 判断高级密码的 代码块里去就好了

请输入正确的密码组合:
您输入的密码为空,请重新输入:123
您输入的密码为空,请重新输入:22
您输入的密码为空,请重新输入:2222
您输入的密码为空,请重新输入:
当第一次输入的是空格然后让再次输入为什么输入了数字还提示密码为空,程序不能向下运行呢?

Twilight6 发表于 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

洋si子 发表于 2020-6-19 10:53:02

Twilight6 发表于 2020-6-19 10:40
将 break 移动到 判断高级密码的 代码块里去就好了

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

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

您输入的密码等级过低,请重新输入:
老师 我刚刚运行了您的代码,可是设置了高级密码还是再循环体内一直显示密码等级较低让重新输入

Twilight6 发表于 2020-6-19 10:54:08

洋si子 发表于 2020-6-19 10:53
您输入的密码等级过低,请重新输入:5552eeeeddd######################$$$$$$$$$$$$$$$ddddddddddddddd
...

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

我现在帮你看看

yhhpf 发表于 2020-6-19 10:56:50

洋si子 发表于 2020-6-19 10:47
请输入正确的密码组合:
您输入的密码为空,请重新输入:123
您输入的密码为空,请重新输入:22


pasword = input('您输入的密码等级过低,请重新输入:')
这行代码也有BUG,你放在了低级密码、中级密码判断之后,也就是数如果第一次输入的就是正确的高级密码,你的代码还是会报错密码低级,
所以你需要将这行代码放到前面两个IF中去。

洋si子 发表于 2020-6-19 10:59:51

Twilight6 发表于 2020-6-19 10:54
我只帮你解决你刚刚提出的问题,什么时候叫我帮你解决所有代码中的问题呢?

我现在帮你 ...

{:5_104:}躬身指导者皆我楷模,不满老师说这个程序我已经修修补补两天了{:5_102:}老师帮我看看这个代码其他问题。谢谢{:5_93:}

Twilight6 发表于 2020-6-19 11:00:22

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

等等 上面代码还是有错误 稍等下

Twilight6 发表于 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)
页: [1]
查看完整版本: 设置高级密码