用户登入:
要求:
- 处理文件中的数据拿账号和密码
- 如果用户名在账户里,判断是否是黑名单
- 让用户输入三次密码成功,超过三次冻结该账户,拉黑
创建三个表:
accountlist = []
pwdlist = []
blacklist = []
sign = True
while sign:
1.输入用户名
2.读取账户和密码
3.把账户添加到accountlist,把密码添加到pwdlist [账户 和 密码在列表中的索引号是一一对应的]
4.判断该用户是否在当前用户列表中
5.打开黑名单用户
6.把黑名单用户添加到对应的列表中
7.判断是否该用户在黑名单里 ,该账户已被冻结
8.如果符合条件,不在黑名单里面,询问密码
9.通过索引,对应的下标拿到密码
10.可以询问用户的密码: 只有三次机会.如果密码一致,则登陆成功,终止外层循环,不一致,则累加次数
如果输入次数=0 ,把当前这个用户加入黑名单
11.该用户不存在
代码:
accountlist = []
pwdlist = []
blacklist = []
sign = True
while sign:
username = input("请输入您的用户名:")
with open("user.txt",mode ="r",encoding="utf-8") as fp:
lst = fp.readlines()
for i in lst:
user,password = i.strip().split(":")
accountlist.append(user)
pwdlist.append(password)
if username in accountlist :
with open("black.txt",mode="r+",encoding="utf-8") as fp:
lst = fp.readlines()
for i in lst:
blacklist.append(i.strip())
if username in blacklist:
print("该账户已经被冻结")
else:
num = accountlist.index(username)
pwd_true = pwdlist[num]
times = 0
while times < 3:
pwd2 = input("请输入您的密码:")
if pwd_true == pwd2:
print("登入成功")
sign = False
break
else:
print("抱歉,密码输入错误,还剩下%s次" % (2-times))
if times == 2:
print("抱歉,您的账户已经被冻结,请联系管理员")
with open("black.txt",mode="a+",encoding="utf-8")as fp:
strvar = username + "\n"
fp.write(strvar)
times += 1
else:
print("用户名不存在")