python登录接口
基础需求:
让用户输入用户名密码
认证成功后显示欢迎信息
输错三次后退出程序
#!/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
相关文章