大鹏

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

第一题作业:

编写登陆接口
基础需求:

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

"""
1、让用户输入用户名和密码
2、认证成功后,显示欢迎信息
3、输错三次后,程序退出
"""
dict_userinfo = {'小甲鱼':'123','dapeng':'1234'}
count = 3
while count:
    name = input('请输入用户名:')
    if name not  in dict_userinfo:
        print('用户名错误,你还剩%d次机会'%(count - 1))
        count = count-1
    else:
        num =3
        while num:
            pwd = input('请输入密码:')
            if pwd not in dict_userinfo[name]:
                print('密码输入错误,你还剩%d次机会'%(num-1))
                num -=1
            else:
                print('登陆成功,欢迎光临')
                break
        break

 

dic={
    'egon1':{'password':'123','count':0},
    'egon2':{'password':'123','count':0},
    'egon3':{'password':'123','count':0},

}


while True:
    name=input('username>>: ')

    if not name in dic:
        print('用户不存在')
        continue
    if dic[name]['count'] > 2:
        print('尝试次数过多,锁定')
        continue

    password=input('password>>: ')


    if password == dic[name]['password']:
        print('登录成功')
        break
    else:
        print('用户名或密码错误')
        dic[name]['count']+=1
View Code

 

 

升级需求:

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

 

"""
1、让用户输入用户名和密码
2、认证成功后,显示欢迎信息
3、输错三次后,程序退出
"""
dict_userinfo = {'小甲鱼':'123','dapeng':'1234','alex':'123','wp':'123'}
#f = open('user.txt','r')




count = 3
while count:
    name = input('请输入用户名:')
    if name in open('user.txt','r').read():
        print('用户%s被锁定.......'%name)
        break

    if name not  in dict_userinfo:
        print('用户名错误,你还剩%d次机会'%(count - 1))
        count = count-1
        with open('user.txt','a') as f:
            f.write(name)
            f.close()
    else:
        num =3
        while num:
            pwd = input('请输入密码:')
            if pwd not in dict_userinfo[name]:
                print('密码输入错误,你还剩%d次机会'%(num-1))
                num -=1
                with open('user.txt','a') as f:
                    f.write(name)
                    f.close()
            else:
                print('登陆成功,欢迎光临')
                break
        break

# f = open('user.txt','r')
# print(f.read())
# f.close()

 

#db.txt内容:egon1|egon2|
dic={
    'egon1':{'password':'123','count':0},
    'egon2':{'password':'123','count':0},
    'egon3':{'password':'123','count':0},
}

count=0
while True:
    name=input('u>>: ')
    if name not in dic:
        print('用户不存在')
        continue

    with open('db.txt','r') as f:
        lock_users=f.read().split('|')
        if name  in lock_users:
            print('用户%s已经被锁定' %name)
            break

    if dic[name]['count'] > 2:
        print('尝试次数过多,锁定')
        with open('db.txt','a') as f:
            f.write('%s|' %name)
        break

    password=input('p>>: ')

    if password == dic[name]:
        print('登录成功')
        break
    else:
        print('用户名或密码错误')
        dic[name]['count']+=1
View Code

 

posted on 2018-11-19 23:43  pf42280  阅读(148)  评论(0)    收藏  举报