鱼C论坛

 找回密码
 立即注册
查看: 1484|回复: 4

小白求助,新手做作业

[复制链接]
发表于 2020-5-3 09:15:11 | 显示全部楼层
你这里用for循环也可以到登入那一步呀?
你意思是锁定后到回第一步吧?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-3 09:43:54 | 显示全部楼层
本帖最后由 Twilight6 于 2020-5-3 09:55 编辑
kldsy1984 发表于 2020-5-3 09:29
不好意思问题没说清楚,当输入验证码错误时,它返回到请输入用户名一步了,不是应该返回到请输入验证码这 ...


你把登入写在了for循环里所以每次循环肯定会从’头‘开始你这边的头就是登入用户密码这些,你把登入改外面在加个循环就好
  1. username = input('请输入用户名:')
  2. password = input('请输入密码:')
  3. for i in range(3):
  4.         if username=='admin' and password=='123456':
  5.                 # print('登录成功')
  6.                 s='qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890'
  7.                 code=''
  8.                 import random
  9.                 for i in range(4):
  10.                         r=random.randint(0,len(s)-1)
  11.                         # print(r)
  12.                         # print(s[r])
  13.                         code+=s[r]
  14.                 print('验证码是:',code)
  15.                 c=input('请输入验证码')
  16.                 if c==code:
  17.                         print('验证码正确')
  18.                         print('登录成功')
  19.                         break
  20.                 else:
  21.                         print('验证码错误,请重新输入')
  22.         else:
  23.             print('用户名或密码错误!')
  24.             username = input('请输入用户名:')          # 这里因为循环把登入移动到外部
  25.             password = input('请输入密码:')           # 所以要在输入错误这加上
  26. else:
  27.         print('用户名或密码错误三次,账户已锁定!')
复制代码


不过这样也还是有瑕疵,因为你结果是输入账号密码错误三次才会锁定
但是这里用了for循环只要循环正常完毕就都会锁定,也就是说你验证码输入错误几次也会导致锁定

所以在改改:
  1. username = input('请输入用户名:')
  2. password = input('请输入密码:')
  3. count = 2  # 初始化允许输入错误次数 ,因为第一次输入是在循环外,就是一二两行,所有循环内还有两次机会
  4. while count :
  5.         if username=='admin' and password=='123456':
  6.                 # print('登录成功')
  7.                 s='qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890'
  8.                 code=''
  9.                 import random
  10.                 for i in range(4):
  11.                         r=random.randint(0,len(s)-1)
  12.                         # print(r)
  13.                         # print(s[r])
  14.                         code+=s[r]
  15.                 print('验证码是:',code)
  16.                 c=input('请输入验证码')
  17.                 if c==code:
  18.                         print('验证码正确')
  19.                         print('登录成功')
  20.                         break
  21.                 else:
  22.                         print('验证码错误,请重新输入')
  23.         else:
  24.             count -= 1   # 这边每次错误都减一次机会,其他情况不会减机会
  25.             print('用户名或密码错误!')
  26.             username = input('请输入用户名:')
  27.             password = input('请输入密码:')
  28. else:
  29.         print('用户名或密码错误三次,账户已锁定!')
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-1 19:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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