zoukankan      html  css  js  c++  java
  • 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+'
    ')#把用户名密码存放到文件中
                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+'
    ')#把输入超过三次的用户名锁定到文件中
                print('用户名'+iu+'已锁定')
                break
    lock_user.closed
    user_pw.closed

    测试结果:

    (1)

    (2)

    (3)

    (4)

     欢迎各位大神测试,指正!

  • 相关阅读:
    如何将Oracle安装为Linux服务
    cp | mv | rm
    scp命令
    【读书笔记】深入理解计算机系统:第一章——计算机系统漫游
    微信小程序笔记(3):小程序的生命周期及其相关函数
    微信小程序笔记(2):wxml相比于html的扩展
    微信小程序笔记(1):小程序的代码构成和目录文件结构
    [C/C++]const限定符总结
    整数的表示与编码
    关于补码的由来和作用
  • 原文地址:https://www.cnblogs.com/come-on-baby/p/9354836.html
Copyright © 2011-2022 走看看