本文实例为大家分享了python实现用户注册登录程序的具体代码,供大家参考,具体内容如下

要求:

1.支持多个用户登录(把已有的用户名和密码存放在一个文件中,锁定的用户名存放在另一个文件中)

2.输入正确的用户名和密码,则登录成功;密码错误,可以重新输入密码两次;用户名错误,可以重新注册用户名,也可以重新输入用户名和密码。

3.用户名输入正确,密码错误三次后,锁定用户名,退出;

4.输入三次后,退出程序。

代码如下:

user_pw=open('username_file','r+',encoding='utf_8')  #打开存放用户名和密码的文件
lock_user=open('lock_file','r+',encoding='utf-8') #打开存放被锁定用户的文件
lu=[]#用来存放被锁定用户的用户名
up_user=[] #用来存放文件中已有的用户名
up_pw=[]#用来存放文件中已有用户的密码
in_user=[]#存放运行过程中用户输入的用户名,用来判断用户输入某一个用户名的次数是否超过3次
count=0 #计算用户的登录次数
count1=0 #计算用户输入密码的次数
#读取文件中存放的用户名和密码,并存放到列表up_user和up_pw中
for line in user_pw.readlines():
    u,p=line.split()#把一行的字符串按空格分割成两个字符串
    up_user.append(u)
    up_pw.append(p)
#读取用户名被锁定的用户,存放到列表lu中
for line in lock_user.readlines():
    l=line.strip()
    lu.append(l)
#用户输入用户名、密码少于三次
while count<3:
    user=input("请输入用户名")
    in_user.append(user)
    pw=input("请输入密码")
    if user in lu:#判断输入的用户名是否在被锁定用户中
        print("用户已锁定")
        break
    if user in up_user:#输入的用户名没有被锁定
        i=up_user.index(user)#找到输入的用户名在列表中的索引值
        if pw==up_pw[i]:#找到相同索引的密码判断和输入的密码是否一致
            print("登录成功")
            break
        else:
            print("密码错误")
            while count1<2:#用来判断用户输入了几次密码(一共三次,最开始已经输入了一次,所以还剩两次)
                pw1=input("请重新输入密码")
                if pw1==up_pw[i]:
                    print("登录成功")
                    break
                else:
                    print("密码错误")
                count1+=1
            count=3
            break
    else:
        print("该用户名未注册,注册请输入'yes',按任意键重新输入用户名")
        a=input()
        #注册
        if a=='yes':
            print(user)
            print(pw)
            user_pw.write(user+' '+pw+'\n')#把用户名密码存放到文件中
            up_user.append(user)#把用户名和密码存放到数组中
            up_pw.append(pw)
            print('注册成功')
    count+=1
if count==3:
    print("您输入的次数太多")
    for iu in in_user:
        if in_user.count(iu)>=3:
            lock_user.write(iu+'\n')#把输入超过三次的用户名锁定到文件中
            print('用户名'+iu+'已锁定')
            break
lock_user.closed
user_pw.closed

测试结果:

(1)

(2)

(3)

(4)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。