Pythone实现用户注册和登录,包括3次输入错误的账户锁定

该博客介绍了如何使用Python创建一个简单的用户注册和登录系统。系统利用两个TXT文件user.txt存储用户名和密码,userlock.txt记录被锁定的账户。在登录过程中,如果输入错误密码3次,对应账户会被锁定,下次登录时会检查此文件以防止继续尝试。

创建2个txt格式文件,user.txt和userlock.txt
注册的时候将用户名和密码写入user.txt
一行用户名,一行密码,

在登录时,进入user.txt按行查找用户名和密码,找到用户名后用flag标记为1,
下一行如果与密码匹配则跳出循环,不匹配清除flag重新输入密码,避免跳行查找密码

如果三次登录失败,则将此时的用户名添加到userlock.txt,下次登录的时候遍历userlock.txt
如果匹配跳出循环不再输入密码

file = open(r'E:\PythoneDATA\Firtday\user.txt','w+')

while True:
    choose = int(input("choose to select "
                   "\n1.sign up"
                   "\n2.sign in"
                   "\n0.exit"
                   "\n"))
    if choose==1:
        _username = input("username:")
        while True:
            _password1=input("password:")
            _password2=input("enter password again:")
            if(_password1!=_password2):
                print("your password isn't currect"
                      "please enter again")
            else:
                print("successfully sign up ")
                break
        with open(r'E:\PythoneDATA\Firtday\user.txt','w+') as file:
            file.write(_username)
            file.write('\n'+_password1+'\n')
        file.close()
    if choose==2:
        file = open(r'E:\PythoneDATA\Firtday\user.txt', 'r')
        print('''
         ------------------------------------------
               Welcome,please enter your
                 username and password
         ------------------------------------------''')
        sign_in=0
        for i in range(3,0,-1):
            username = input('           username:')
            password = input('           passward:')
            flag=0
            for i, line in enumerate(file2):
                if username== line:
                    print("this account has been locked")
                    break;
                for i, line in enumerate(file):
                    if line==username:
                        flag+=1
                        continue
                    if flag==1 and line==password:
                        print('succeessfully sign in')
                        sign_in=1
                        break
                    if flag==1 and line!=password:
                        flag-=1
                    if flag<0:
                        print("username or password error")
                        sign_in=0
                        break
                if sign_in==0:
                    print("you have {0} times to try".format(i))
        if i>=3:
            with open(r'E:\PythoneDATA\Firtday\userlock.txt', 'w+') as file2:
                file2.write(username)
            print("this account has been locked")
    if choose==0:
        break

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值