zoukankan      html  css  js  c++  java
  • python编辑用户登入界面

    1.需求分析

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

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

    1.代码实现

    getNum = int(input("1.登入
    2.注册
    Please 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+'
    '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('
    '+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+'
    ')
        print("注册成功 !")

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

        

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

  • 相关阅读:
    死锁及预防
    Java中的接口和抽象类
    Jmeter执行java脚本结束时提示:The JVM should have exited but did not.
    dubbo服务的group和version
    Dubbo-admin无法显示Group分组信息
    Python中的变量、引用、拷贝和作用域
    记一次调试python内存泄露的问题
    使用gdb调试python程序
    dstat用法;利用awk求dstat所有列每列的和;linux系统监控
    flask到底能登录多少用户?
  • 原文地址:https://www.cnblogs.com/wangxingwei/p/9318010.html
Copyright © 2011-2022 走看看