实现登陆功能,登陆三次锁定用户

目标:实现登陆功能,登陆三次锁定用户,没有数据库,用txt文本实现

name.txt

liubei|123456|3
zhugeliang|654321|3
zhangfei|123|3
machao|321|3
zhangsan|1122333|3
lisi|1231|3

file1 = open('name.txt','r')
file = file1.readlines()
file1.close()
#将每个用户名和密码做成数组
name_pass = []#定义全局变量
bo = True #是否有该用户名
for i in range(file.__len__()):
    name_pass.append(file[i].strip('\n').split('|'))
name = input('请输入您的id:')
name = name.strip(' ')
rname = []
for i in range(name_pass.__len__()):
    while name == name_pass[i][0] and int(name_pass[i][2]) > 0:#未锁住的用户
        bo = False
        print()
        password = input('请输入你的密码:')
        if password == name_pass[i][1]:
            print('欢迎光临%s登陆'%name_pass[i][0])
            exit()
        else:
            num = int(name_pass[i][2])-1
            print('你输入的密码有误,请重新输入,您还有%s次机会'%num)
            #准备写入次数,每次错误记录下来(写一个方法来直接组合数据歇会去)
            name_pass[i][2] = str(num)
            #将字符重新拼接
            if num in (0,1):#判断是否要修改剩下的次数
                rname.pop()
            rname.append('|'.join(name_pass[i]))
    rname.append('|'.join(name_pass[i]))
    while name == name_pass[i][0] and name_pass[i][2] == '0':#锁了的用户
        bo = False
        print('你的账户密码输入超过3次,已被锁定,请联系管理员')
        if i != rname.__len__() -1:#拼接时的一个判断
            rname.pop()
        break
rname = '\n'.join(rname)
file = open('name.txt','w')
file.write(rname)
file.close()
if bo:
    print('没有该用户名')

 

暂时就做那么点吧

posted on 2019-01-11 00:57  鹏志1989  阅读(427)  评论(1编辑  收藏  举报