01-用户模拟登录

模拟登陆:
1. 用户输入帐号密码进行登陆
2. 用户信息保存在文件内
3. 用户密码输入错误三次后锁定用户

代码:

#Author:hejianping
#2017-04-20
import getpass
userfile = open('userfile.txt','r')
userdict = {}
new_userlist = []

for line in userfile.readlines():
userlist = line.strip().split(':') #移除字符串头尾的空格并且以:号为分隔符切片后生成列表
_username = userlist[0].strip() #从生成的列表中里边中取第一个参数用户名的值
_passwd = userlist[1].strip() #从生成的列表中里边中取第二个参数密码的值
_lockcount= int(userlist[2].strip()) #从生成的列表中里边中取第三个参数锁定次数的值,格式化整数
#使用字典函数让每个用户名生成一个对应的列表:
userdict[_username] = {'name':_username,'pwd':_passwd,'lockcount':_lockcount}
#print(userdict[_username]) #打印用userfile.txt文件信息

count = 0
while count < 3:
username = input("请输入您的用户名:")
#判断用户是否存在:
if username not in userdict.keys(): #userdict.keys()代表返回userdict字典所有的键值.
print("用户不存在!")
break
elif userdict[username]['lockcount'] < 3:
password = getpass.getpass("请输入密码:")
if password == userdict[username]['pwd'].strip():
print("Welcome user {name} login successfully!" .format(name=username))
break
else:
count += 1
userdict[username]['lockcount'] += 1 #错误锁定次数加1
userfile = open('userfile.txt', 'w+')
for change in userdict.values():
#错误次数更新后的列表,需要把参数格式化为字符串:
new_userlist = [str(change['name']),str(change['pwd']),str(change['lockcount'])]
colon = ":" #冒号
new_userlist_colon = colon.join(new_userlist) #使用冒号连接序列中元素并生成新的字符串new_userlist_colon
userfile.write(new_userlist_colon + "\n")

if count == 3:
print("密码输错达到3次,锁定用户并退出!")
break

#判断用户为锁定直接退出
else:
print("该用户已经被锁定!无法登陆!")
break

userfile.close()


程序流程图

 

转载于:https://www.cnblogs.com/hejianping/p/6740001.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值