Python实战一,,要求:用户输入用户名


要求:用户输入用户名和密码错误三次,就对该用户进行锁定,不让其进行登录。

def match(name,pwd):    ‘‘‘匹配用户输入的信息,进行判断‘‘‘    falg = True    while falg:        with open("test",mode="r",encoding="utf8") as f_read,                open("test2",mode="r",encoding="utf8") as f1_read:            fread = f_read.readlines()            f1read = f1_read.readlines()            for lines in f1read:#循环黑名单里的内容                if name == lines:#判断是否在黑名单里,在就锁定退出                    falg = False#退出while循环                    print("This user has been locked!")            if falg ==False:                break #退出黑名单循环            for line in fread:#循环用户信息库,进行判断是否正确                if name in line and pwd in line :                    verdict = True#输入正确为True,退出循环                    break                else:                    verdict = False#输入错误为False,跳出本次循环                    continue            if verdict == True:#因为用户信息库里有很多用户信息,so,要拿出来判断                print("welcome %s" % (name))                falg = False            if verdict == False:                print("You input the username or password error")                decide(name)#当输入错误时,调用decide函数                falg = Falsedef decide(name):    ‘‘‘写入用户输入错误的用户名,达到一定的次数,把该用户写入黑名单‘‘‘    count = 0#计数器,用于记录输入错误用户的次数    with open("test1",mode="a+",encoding="utf8") as f_add:        f_add.write("\n"+name)#往文本写错误用户的信息        f_add.seek(0)#把光标移到最开始位置        fadd = f_add.readlines()#获取输入错误用户的信息        for i in range(len(fadd)):#循环列表fadd            fadd[i] = fadd[i].replace(‘\n‘, ‘‘)#去掉每行中的“\n”,用于下面的比对        for line in fadd:#此时的fadd里已没有多余的空格,便于比对            if name == line:#当有重复的用户名,累加一次                count += 1 #匹配后自加1            if count > 2:#当输入3次时,就调用black函数                black(name)def black(name):    ‘‘‘黑名单,输入达到次数的用户,被锁定在黑名单‘‘‘    with open("test2",mode="a+",encoding="utf8") as f_add:        f_add.seek(0)#移动光标至最开始位置        fadd = f_add.readlines()#获取黑名单信息        for line in fadd:#循环黑名单,有重复的用户不会被写入            if name == line :                break  #有重复的信息退出,不再写入黑名单        f_add.write("\n"+name)#写入黑名单while True: #用户交互模式    name = input("Please input your username:").strip()    if name =="q":#输入q退出        print("ByeBye!")        break    pwd = input("Please input your password:").strip()    match(name, pwd)#调用match函数,匹配输入信息

  程序中test为用户的信息库:

michael---111egon---222tom---333

  test1:为缓存错误用户的信息,对错误用户进行计数。

  test2:为存储达到规定次数的用户信息,就是黑名单。使在名单里的用户无法完成登录操作。

  

Python实战一

评论关闭