Python练习 - 用户登录

功能介绍:

1.读取db用户信息存储文件。

2.用户输入username验证是否在db中存在,如果存在的话验证是否是被锁定。

3.如果通过上一步,验证用户密码,如果在3次内输对密码那么登录成功,并将用户time设置为0。

4.如果密码错误三次那么次用户被锁定不能再使用了,用户time为3。

操作接受:

1.输入正确用户名。

2.输入正确密码。

3.登录成功

代码:

#!/usr/bin/Python
# -*- coding:utf-8 -*-
f1 = open('db1','r')
data = f1.read()
f1.close()
temp = data.split("\n")
usr_list = []
v = {}
for lists in temp:
a = lists.split("|",3)
v = {
'name':a[0],
'pwd':a[1],
'time':a[2]
}
usr_list.append(v)
# print(usr_list)

# 输入用户如果用户在db文件中提示用户输入密码如果不在重新输入用户
i = True
c = 0
b = {}
while i:
name = input("User:")#输入用户名
name = name.lower()#将输入内容转换为小写
while c < usr_list.__len__():#c< 2
if usr_list[c]['name'] == name:#判断输入的内容是否在usr_list列表中,如果存在判断time字段是否小于3
num = int(usr_list[c]['time'])
if num < 3:#判断time是否小于3
b['pwd'] = usr_list[c]['pwd']#将所输入用户的密码存用b字典中
i = False#退出循环
else:#锁定用户
print("用户:%s被锁定"%name)
quit()
c+=1

#密码验证三次输入不对锁定用户
t = 0

while t < 3:
pwd = input("password")#输入密码
if pwd == b['pwd']:#验证密码是否相等
for p in usr_list:#如果验证成功将time设置为0
if p['name'] == name:
p['time'] = 0
print("登陆成功")

#如果登陆成功将db文件中用户time设置为0
e = 0
f3 = open("db1","w")
while e < usr_list.__len__():
for pp in usr_list:
pp['time'] = 0
for g in pp.values():
n ="%s|"%g
f3.write(str(n))
e+=1
if e < usr_list.__len__():
f3.write("\n")
f3.close()
# print("结果%s"usr_list)
break
t+=1
#如果用户输入密码超过3次锁定并将db文件中用户time设置3
else:
print("用户:%s被锁定"%name)
for p in usr_list:
if p['name'] == name:
p['time'] = t
d = 0
f2 = open("db1","w")
while d < usr_list.__len__():
for cc in usr_list:
for k in cc.values():
w ="%s|"%k
f2.write(str(w))
d+=1
if d < usr_list.__len__():
f2.write("\n")
f2.close()

 

posted @ 2017-05-05 19:08  hanjialong  阅读(274)  评论(0编辑  收藏  举报