• Day1登录接口编写


    需求:

    1. 输入用户名,密码
    2. 认证成功显示欢迎信息
    3. 输入错误三次后锁定用户

    Readme:

      1.ID.txt是存放用户名、密码的文件,和linux一样使用冒号隔开,相比空格、Tab键间隔,冒号更好处理

        sam:123

        jack:456

        tom:789

      2.LockID.txt是存放被锁定用户名的文档,默认为空.

      3.用户登录时首先会判断是不是在锁定文件中,如是则提示已锁定并退出程式

      4.接下来判断用户ID是否合法,合法用户密码错误3次会被锁定;非法用户ID错误3次直接退出,不会记录

    流程图:

        

    代码:

      

    #-*- coding:utf-8 -*-
    #Version:python3.5
    #Programme Summary:密码错误3次,对应用户名将被锁定;用户名错误3次,程序将会登出。
    
    import sys,getpass
    #文件路径使用变量,方便变更
    LockID = 'I:python_testLockID.txt'
    ID = 'I:python_testID.txt'
    #定义锁定用户的函数
    def Deny_ID(username):
        with open(LockID,'a') as Deny_f:
            Deny_f.write('
    ' + username)
            sys.exit("密码错误3次,帐号被锁定!")
    
    ID_list=[]
    count = 0
    #用列表获取用户ID,方便下面判断用户是否合法
    with open(ID, 'r') as ID_file:
        for lines in ID_file:
            (usr, pawd) = lines.strip().split(':')
            ID_list.append(usr)
    #主程序3次循环
    while count < 3:
        count += 1
        username = input('用户名:')
        #用with方法读取文档,可防止后面忘记关闭文件
        with open(LockID,'r') as Lock_f:
            #for循环判断用户是否在锁定表中,如在则提示被锁定,程序退出
            for line in Lock_f:
                if username == line.strip('
    '):
                    sys.exit("此用户已被锁定,请找管理员.")
            #判断用户名是否合法
            if username in ID_list:
                p = 0
                #如用户名合法,接着判断密码是否正确
                while p < 3:
                    p +=1
                    password = getpass.getpass("密码:")
                    with open(ID,'r') as ID_f:
                        for lines in ID_f:
                            #用冒号分离并获取用户ID和密码
                            (user,passwd) = lines.strip().split(':')
                            #判断用户ID和密码是否同时成立
                            if user == username and passwd == password:
                                sys.exit("欢迎用户%s登录!"%username)
                        else:
                            if p != 3:
                                print("密码错误第%d次,3次将被锁定" % p)
                            else:
                                #调用锁定用户函数
                                Deny_ID(username)
         #不合法用户ID
            else:
                if count != 3:
                    print("用户名错误第%d次."%count)
                else:
                    #错误用户ID不会写入锁定表
                    sys.exit("用户名错误3次,程序登出!")
    

      

  • 相关阅读:
    OAF 开发,给组件添加javascript事件
    SQL SERVER占用CPU过高优化
    Winform嵌入CEF(非正常用法)
    多线程——i++的坑
    20150819(i++与++i的思考)
    listView中,checkBox的显示和隐藏
    装箱和拆箱
    虚方法
    [转]关于struct的一些解释与class对比
    提取行政区边界经纬度坐标(高德+百度)
  • 原文地址:https://www.cnblogs.com/pynetwork/p/8910557.html
Copyright © 2020-2023  润新知