欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python编辑用户登入界面

程序员文章站 2022-10-04 15:45:49
1.需求分析 登入界面需要达到以下要求: 1.代码实现 user_info.txt文件的内容如下图: 代码的重要部分都有注解,txt文件的创建目前存放与工程目录中,使用相对路径方便调用,如不在该文件夹中则代码中的路径需要改成绝对路径,否则程序运行后会有问题。代码中仍有不完善的地方,忘有经验的朋友给句 ......

1.需求分析

  登入界面需要达到以下要求:

  1. 系统要有登入和注册两个选项可供选择
  2. 系统要能够实现登入出错提示,比如账户密码错误等,用户信息保存在user_info.txt文件夹中
  3. 系统要能够进行登入错误次数统计并锁定,当用户输入3次错误时账户密码时,改账户被锁定,并将锁定账户保存于login_lock.txt文件夹中
  4. 注册界面要能够进行用户名重复提示,当用户注册账户已存在时,进行相应信息的提示。

 

1.代码实现

getNum = int(input("1.登入\n2.注册\nPlease Input the Choose :"))
while getNum<1 or getNum>2:
    getNum =int(input("无效值 :"))

username = input("用户名: ")
password = input("密码: ")

if getNum == 1:#登入
    ErrNums = 0
    while ErrNums<3:
        T = False
        fp = open('login_lock.txt','r')#打开锁定文件查看输入的账户是否被锁定
        lines = fp.readlines()#读取所有行
        while T== False:
            for line in lines:
                if line.split(',')[0] == username:
                    print("帐号已被锁定 !")
                    username = input("用户名: ")
                    password = input("密码: ")
                    break
            T=True
        fp.close()

        T = False
        fp_user = open('user_info.txt','r')#打开用户信息文件:
        lines = fp_user.readlines()
        for line in lines:
            if line.split(',')[0] == username:
                if line.split(',')[1] == password+'\n'or line.split(',')[1] == password:
                    print("登入成功 !")
                    T = True
                    break
        fp_user.close()

        if T == False:#登入失败了
            ErrNums += 1
            if ErrNums >= 3:
                fp_user = open('login_lock.txt','a')
                print("账户已被锁定 !")
                fp_user.write('\n'+username)
                fp_user.close()
                break
            print("账户名或密码错误 !")
            username = input("用户名: ")
            password = input("密码: ")
        else:
            break
elif getNum == 2:#注册
    fp= open('user_info.txt','r')#打开用户信息文件:
    T = False
    lines = fp.readlines()  # 读取所有行
    while T == False:
        for line in lines:
            if line.split(',')[0] == username:
                print("帐号已存在,请重新输入 !")
                username = input("用户名: ")
                password = input("密码: ")
                break
            T = True
    fp.close()
    fp = open('user_info.txt', 'a')  # 打开用户信息文件:
    fp.write(username+','+password+'\n')
    print("注册成功 !")

  user_info.txt文件的内容如下图:

  python编辑用户登入界面  

  代码的重要部分都有注解,txt文件的创建目前存放与工程目录中,使用相对路径方便调用,如不在该文件夹中则代码中的路径需要改成绝对路径,否则程序运行后会有问题。代码中仍有不完善的地方,忘有经验的朋友给句指出与探讨。