一:
编写登陆接口
基础需求:
让用户输入用户名密码
认证成功后显示欢迎信息
输错三次后退出程序
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