需求说明:

  用户登录,对密码进行三次校验,三次均失败后,将锁定用户名,不允许登录。

解决方案:

  1、明确可成功登录的用户名和密码;

  2、用户黑名单,三次登录失败后,将用户名写入黑名单;

  3、检测黑名单的内容,如果与当前登录名一致,则不允许继续输入密码,直接提示用户已锁定。

注意:需要再同级目录创建一个black_user,否则执行报错。

注意:raw_input是针对python2.0的。如果再python3.0需要改成input.

代码实现:

# -*- coding:utf-8 -*-

#登录三次锁定用户

#用于计数(循环三次的判断)
count = 0

#真实用户名和密码
real_username = "test123"
real_password = "123qwe"

#读取黑名单的内容
f = open('black_user','r')
lock_file = f.read()
f.close()

username = raw_input("请输入用户名:")

#判断输入的用户名是否在黑名单内,如果在则不允许继续输入密码
for i in range(1):
    if lock_file == username:
        print("对不起,您的用户名已锁定,暂时不允许使用!")
        exit()
    else:
        continue

#尝试输入密码,并将输入次数进行计数
for i in range(3):
    password = raw_input("请输入密码:")
    if password == real_password:
        print "登录成功!"
        break
    else:
        print("登录失败...")
    count += 1

#如果错误密码输入了三次,则提示用户名锁定,并将用户名放入黑名单中
if count == 3:
    print("对不起,您输入的密码错误次数已达3次,将锁定您的账户!")
    f = open('black_user','w')
    f.write('%s'%username)
    f.close()

执行结果

[root@localhost opt]# python sanci.py
请输入用户名:test123
请输入密码:123qaz
登录成功!
[root@localhost opt]# python sanci.py
请输入用户名:sdf
请输入密码:add
登录失败...
请输入密码:dasd
登录失败...
请输入密码:das
登录失败...
对不起,您输入的密码错误次数已达3次,将锁定您的账户!
[root@localhost opt]#