一:
编写登陆接口
基础需求:
让用户输入用户名密码
认证成功后显示欢迎信息
输错三次后退出程序
1.dic 方法
name_info={‘zhang‘:‘123‘}
count=0
while count<3:
    name=input(‘请输入用户名:‘)
    if name in name_info:
        password=input(‘请输入密码:‘)
        if password == name_info[name]:
            print(‘欢迎登入‘)
            break
        else:
            print(‘密码输入有误,请重新输入密码:‘)
            count+=1
    else:
        print(‘输入信息有误,请重新输入‘)
        count+=1
2.list方法
name_info=[‘zhang‘,‘123‘] count=0 while count < 3: name=input(‘请输入用户名:‘) if name == name_info[0]: password=input(‘请输入密码:‘) if password == name_info[1]: print(‘欢迎登入‘) break else: print(‘密码输入错误,请重新输入‘) count+=1 else: print(‘用户名输入错误,请重新输入‘) count+=1
二:升级版需求:
    可以支持多个用户登录 (提示,通过列表存多个账户信息)
    用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)
name_info={‘zhang‘:{‘passwd‘:‘123‘,‘count‘:0},
           ‘xin‘:{‘passwd‘:‘123‘,‘count‘:0},
           ‘xiao‘:{‘passwd‘:‘123‘,‘count‘:0}
           }
count=0
while True:
    name=input(‘请输入你的用户名:‘)
    if name not in name_info:
        print(‘此用户名不存在,请重新输入!‘)
        continue
    with open(‘db.txt‘,‘r‘) as f:
        lock_users=f.read().split(‘|‘)
        if name in lock_users:
            print(‘用户%s已经被锁定‘ %name)
            break
    if name_info[name][‘count‘] > 2:
        print(‘尝试次数过多,被锁定‘)
        with open(‘db.txt‘, ‘a‘) as f:
            f.write(‘%s|‘ % name)
        break
    # if name in name_info:
    password=input(‘请输入你的密码:‘)
    if password == name_info[name][‘passwd‘]:
        print(‘登入成功‘)
        break
    else:
        print(‘密码输入错误,请重新输入:‘)
        name_info[name][‘count‘]+=1
 
 原文:http://www.cnblogs.com/zhangxinxiao/p/7127075.html