首页 > 技术文章 > Day1:Python编写用户登陆界面

louisyang 2018-08-24 00:03 原文

在做Alex老师第十四期培训班的课后作业,涉入不深,代码比较笨拙,请各位多多指教!

filename = "UsernameAndPassword.txt" #存放用户名及密码的伪数据库
user_dict = {}
try: #从数据库中读取用户名密码,存放在缓存字典中
with open(filename,"r") as dict_file:
for line in dict_file:
(username,password) = line.split(":") #用户名和密码的存放格式: alex:abc123
user_dict[username] = password
except IOError as ioerror:
print("{file}not exit".format(file = filename))
namelist = []
try: #从数据库中读取已经被锁定的用户名单,存放在列表中
with open("list.txt","r") as list_file:
for eachname in list_file:
namelist.append(eachname.strip("\n"))
except IOError as ioerror:
print("list.txt not exit")
while True:
count = 0
name = input("Please input username:") #输入用户名
if name in namelist: #判断用户名是否被锁定
print("{0} has been locked!".format(name)) #如果用户名被锁定,跳的锁定界面
user_confirm = input("Do you want try again other username?(Y/N):")#询问用户是否想继续进行尝试
if user_confirm.lower() == "y":
continue
else:
break
if name in user_dict.keys(): #判断用户忙是否存在数据库中
while count < 3:
_password = input("Please input password:")
if _password == user_dict[name]: #用户名密码正确跳转到登陆成功界面
print("Login success!")
break
else:
count += 1
namelist.append(name) #三次密码错误后,锁定用户名
with open("list.txt","a") as add_list:
add_list.write("\n" + name) #并将锁定的用户名追加到伪数据库中
else:
print("username not exit!")

存有用户名密码的文本文件和被锁定用户的文件与程序在同一文件夹下。

在网数据库中追加锁定用户名时用的 f.open(filename,"a")     "a"表示追加,可以保证原数据库中的记录不被替换


 

 


推荐阅读