python登录接口

发布时间:2019-07-19 09:50:45编辑:auto阅读(1370)

    基础需求:

    让用户输入用户名密码
    认证成功后显示欢迎信息
    输错三次后退出程序

    #!/usr/bin/python
    #_*_coding:utf-8_*_
    
    user_dic={
        'hgz1':{'passwd':'123','flag':'unlock'},
        'hgz2':{'passwd':'123','flag':'unlock'},
        'hgz3':{'passwd':'123','flag':'unlock'},
    }
    
    count_lock = 0  # 初始化账号锁定次数为0次
    
    tag = True
    while tag:
    
        username=input('请输入用户名>>: ')
        if username == '':
            continue
        passwd=input('请输入密码>>: ')
    
        # 判断输入的用户名是否存在;
        if user_dic.get(username):
            # 账号是否锁定,锁定则退出;
            if user_dic[username]['flag'] == 'lock':
                print('账号已经锁定,请解锁!')
                break
    
            # 判断输入的密码是否正确,正确则显示登陆成功;
            if user_dic[username]['passwd'] == passwd:
                    print('Login Successfull!')
                    break
            else:
                # 密码不正确登录次数加一
                count_lock += 1
    
                # 判断用户登陆次数是否超出限制
                if (3 - count_lock):
                    print('账号或密码错误,还有 %s 次机会尝试登陆!' % (3 - count_lock))
    
            # 用户尝试登录次数超过3次的时候,直接锁定账号
            if count_lock == 3:
                user_dic[username]['flag'] = 'lock'
                print('您的账号已被锁定')
                break
        else:
            # 输入账号不正确告知用户
            print('您输入的账号不存在,请重新输入!')
            continue
    

    升级需求:

    可以支持多个用户登录 (提示,通过列表存多个账户信息)
    用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)

    #!/usr/bin/python
    #_*_coding:utf-8_*_
    
    import pickle
    import os
    
    user_dic={
        'hgz1':{'passwd':'123','flag':'unlock'},
        'hgz2':{'passwd':'123','flag':'unlock'},
        'hgz3':{'passwd':'123','flag':'unlock'},
    }
    
    # 载入用户账户密码信息
    with open('account.pkl','rb') as f:
        user_dic = pickle.load(f)
    
    # 初始化账号锁定次数为0次
    count_lock = 0
    
    tag = True
    while tag:
    
        username=input('请输入用户名>>: ')
        if username == '':
            continue
        passwd=input('请输入密码>>: ')
    
        # 判断输入的用户名是否存在;
        if user_dic.get(username):
            # 账号是否锁定,锁定则退出;
            if user_dic[username]['flag'] == 'lock':
                print('账号 %s 已被锁定,请解锁!' % username)
                break
    
            # 判断输入的密码是否正确,正确则显示登陆成功;
            if user_dic[username]['passwd'] == passwd:
                    print('Login Successfull!')
                    break
            else:
                # 密码不正确登录次数加一
                count_lock += 1
    
                # 判断用户登陆次数是否超出限制
                if (3 - count_lock):
                    print('账号或密码错误,还有 %s 次机会尝试登陆!' % (3 - count_lock))
    
            # 用户尝试登录次数超过3次的时候,直接锁定账号
            if count_lock == 3:
                with open('account.pkl','wb') as f:
                    # 标志用户为锁定状态
                    user_dic[username]['flag'] = 'lock'
                    user_dic = pickle.dump(user_dic, f)
                print('您的账号 %s 已被锁定!' % username)
                break
        else:
            # 告知用户输入账号不正确
            print('您输入的账号不存在,请重新输入!')
            continue
    

关键字

上一篇: python生成随机数

下一篇: python 集合、函数