count={ } f=open("账号密码本.txt",mode="r",encoding="utf_8") for line in f: line=line.strip().split(",") # print(line) # 字典的增添 count[line[0]]=line print(count) while True: user=input("请输入账号:").strip() if user not in count: print("该账号未注册") continue elif count[user][2]=="0": print("该账号已被锁定") continue num=0 while num<3: password=input("请输入密码:").strip() if count[user][1]==password: print(f"欢迎{user}使用") exit("bey....") else: print(f"请再次输入密码,你还有{2-num}次机会") num+=1 if num==3: print(f"密码输入次数{num},已被锁定") count[user][2]="0" f2=open("账号密码本.txt",mode="w",encoding="utf_8") for p,v in count.items(): # 裴家奇['裴家奇', '111', '0']裴坚强['裴坚强', '222', '0'] kk=",".join(v)+"\n" f2.write(kk)#裴坚强,222,0裴家奇,111,0 f2.close() break
代码思考:在存储文件中,用0/1数字判断账号是否锁定。若已经锁定则不进行下面判断。该账号三次密码输入错误,则修改0变为1,利用f.write()直接把源文件覆盖。也是可以利用os函数,直接操作文件对文件进行修改。