需求说明:
用户登录,对密码进行三次校验,三次均失败后,将锁定用户名,不允许登录。
解决方案:
1、明确可成功登录的用户名和密码;
2、用户黑名单,三次登录失败后,将用户名写入黑名单;
3、检测黑名单的内容,如果与当前登录名一致,则不允许继续输入密码,直接提示用户已锁定。
代码实现:
1 # -*- coding:utf-8 -*- 2 3 #登录三次锁定用户 4 5 #用于计数(循环三次的判断) 6 count = 0 7 8 #真实用户名和密码 9 real_username = "iamxxx" 10 real_password = "123qwe" 11 12 #读取黑名单的内容 13 f = open('black_user','r') 14 lock_file = f.read() 15 f.close() 16 17 username = raw_input("请输入用户名:") 18 19 #判断输入的用户名是否在黑名单内,如果在则不允许继续输入密码 20 for i in range(1): 21 if lock_file == username: 22 print("对不起,您的用户名已锁定,暂时不允许使用!") 23 exit() 24 else: 25 continue 26 27 #尝试输入密码,并将输入次数进行计数 28 for i in range(3): 29 password = raw_input("请输入密码:") 30 if password == real_password: 31 print "登录成功!" 32 break 33 else: 34 print("登录失败...") 35 count += 1 36 37 #如果错误密码输入了三次,则提示用户名锁定,并将用户名放入黑名单中 38 if count == 3: 39 print("对不起,您输入的密码错误次数已达3次,将锁定您的账户!") 40 f = open('black_user','w') 41 f.write('%s'%username) 42 f.close()
执行结果:
场景1:输入正确 请输入用户名:iamxxx 请输入密码:123qwe 登录成功! 场景2:输入错误3次 请输入用户名:iamxxx 请输入密码:1 登录失败... 请输入密码:1 登录失败... 请输入密码:1 登录失败... 对不起,您输入的密码错误次数已达3次,将锁定您的账户! 再次执行: 请输入用户名:iamxxx 对不起,您的用户名已锁定,暂时不允许使用!