第一步:读取用户账号密码文件,将其内容按账号为key,密码为值,保存在一个字典中 第二步:让用户输入账号和密码 第三步:判断账号是否在字典的key中 1有,检查是否账号被锁定(判断行开始是否有!) 没有锁定 再检查密码是否匹配 1匹配:登录成功 2不匹配:重新输入or退出 密码错误3次,锁定账号 锁定 提示信息 2没有,让用户重新输入账号or退出 第四步:锁定密码错误3次的账号,在账号文件中该账号密码对应的行添加一个!放在密码开始
from fun import * with open("users data.txt","r") as f: user_data = f.read() user_data = user_data.split('\n') data_dict = dict([it.split(',') for it in user_data])#将生的成列表转换成字典 f.close() i = 1 while(i): ID = input("请输入账号:") password = input("请输入密码:") if ID in data_dict.keys(): if data_dict[ID][0] == '!': print("您的账号已经被锁定,请联系管理员!") break else: for times in range(3): if password == data_dict[ID]: print("登录成功") i = 0 break else: if times != 2: choice = input("密码错误,按1重新输入,按2退出:") if choice == '1': password = input("请输入密码:") continue else: print("您已经退出登录系统") i = 0 break else: print("密码错误3次,您的账户已经被冻结") lock(user_data,ID) i = 0 break else: choice = input("账户不存在,按1重新输入,按2退出:") if choice == '1': continue else: print("您已经退出登录系统") break
fun.py
import os,shutil def lock(user_data,ID): with open("user_data_lock.txt","w") as f: for it in user_data: if it.split(',')[0] == ID: it = it.split(',')[0]+',!'+it.split(',')[1] f.write(it+'\n') else: f.write(it+'\n') f.close() os.unlink("users data.txt") shutil.move("user_data_lock.txt","users data.txt")
账户文件格式: