|
#!/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 |
|
|