200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Python学习基础总结:简单的银行卡密码输入错误过多的解决办法

Python学习基础总结:简单的银行卡密码输入错误过多的解决办法

时间:2022-10-27 09:23:04

相关推荐

Python学习基础总结:简单的银行卡密码输入错误过多的解决办法

今天去取钱,意外发生了,我输错了4次密码,然后……..可想而知,我就熬到柜台解锁,回来后就写了这么一个银行简单的密码输入,因为时间原因没有来得及优化,后期我会优化的更简单些,大致上是这样的,:

1.用户注册

def user_register(userName,passwd):user_dict = {"userName": userName, "passwd": passwd, "Lock":0}with open("user.txt", "r+") as file:#读取数据查看文件是否为空jsonStr = file.read()if len(jsonStr) == 0:userlist = {"User": [user_dict]}file.write(json.dumps(userlist)) #json.dumps(userlist) 将字典转为字符串格式写入文件print("恭喜您注册成功")else:file.seek(0,0) #将文件指针放在开头# json.loads(jsonStr) 将字符号转为字典(json)格式写入文件 注:一定要按照json要求否则报错user_json = json.loads(jsonStr)userlist = user_json.get("User")#判断输入的账号是否存在,如果存在就返回userNames = [value["userName"] for value in userlist]if userName in userNames:print("已经注册过了")else:# 将新密码账号添加到字典中写入文件userlist.append(user_dict)file.write(json.dumps(user_json))print("恭喜您注册成功")

2.用户登录

def user_login(userName,passwd):user_dict = {"userName": userName, "passwd": passwd}with open("user.txt", "r+") as file:# 读取数据查看文件是否为空jsonStr = file.read()file.seek(0, 0)if len(jsonStr) == 0:print("您还没有注册")else:# json.loads(jsonStr) 将字符号转为字典(json)格式user_json = json.loads(jsonStr)userlist = user_json.get("User")#获取用户名和密码userNames = [value["userName"] for value in userlist]passwds = [value["passwd"] for value in userlist]locks = [value["Lock"] for value in userlist]if userName in userNames:index = userNames.index(userName)lock = locks[index]lock += 1if passwd in passwds:if lock < 4:print("登陆成功")userlist[index]["Lock"] = 0 #登陆成功,锁至为0file.write(json.dumps(user_json))else:print("您的账号输入错误超过四次,已锁定")else:if lock < 4:print("密码错误,您还有%d机会" % (4 - lock))userlist[index]["Lock"] += 1file.write(json.dumps(user_json))return 1else:print("您的账号输入错误超过四次,已锁定")else:print("您还没有注册")return 0

3.到柜台解锁(因为跟注册和登录差不多没有做太多的限制)

def user_lock(userName,passwd):user_dict = {"userName": userName, "passwd": passwd, "Lock": 0}with open("user.txt", "r+") as file:jsonStr = file.read()file.seek(0, 0)# json.loads(jsonStr) 将字符号转为字典(json)格式写入文件 注:一定要按照json要求否则报错user_json = json.loads(jsonStr)userlist = user_json.get("User")# 判断输入的账号是否存在,如果存在就返回userNames = [value["userName"] for value in userlist]if userName in userNames:# 将新密码账号添加到字典中写入文件index = userNames.index(userName)userlist[index]["Lock"] = 0file.write(json.dumps(user_json))print("解锁成功")

4.打印结果

请输入您要的操作(0代表登录,1代表注册,2代表解锁):2userName:123456passWord:123解锁成功请输入您要的操作(0代表登录,1代表注册,2代表解锁):0userName:123456passWord:1密码错误,您还有3机会userName:123456passWord:1密码错误,您还有2机会userName:123456passWord:1密码错误,您还有1机会userName:123456passWord:1您的账号输入错误超过四次,已锁定请输入您要的操作(0代表登录,1代表注册,2代表解锁):0userName:123456passWord:1您的账号输入错误超过四次,已锁定请输入您要的操作(0代表登录,1代表注册,2代表解锁):0userName:123456passWord:123您的账号输入错误超过四次,已锁定请输入您要的操作(0代表登录,1代表注册,2代表解锁):2userName:123456passWord:123解锁成功请输入您要的操作(0代表登录,1代表注册,2代表解锁):0userName:123456passWord:123登陆成功

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。