注册登录问题
Posted zxmbky
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了注册登录问题相关的知识,希望对你有一定的参考价值。
写一个函数完成三次登陆功能,再写一个函数完成注册功能
第一个用字典写的
缺点:
每次运行都是空字典,不能保存用户数据
dic={} def login(dic): index=0 while 1: user=input("输入用户名:").strip() pw=input("输入密码:") if user in dic.keys() and pw==dic[user]: print("登录成功") return True elif index<2: print("你的用户名或者密码有误,请重新登录") else: print("你已输入错误次数达到3次,已被限制登录") return False index+=1 def sign(dic,num_min,num_max): while 1: name=input("输入你要设置的用户名:").strip() if name in dic.keys(): print("这个用户名已经被注册,请换个名字") else: break while 1: pw=input("输入你要设置的密码(长度在{}和{}之间):".format(num_min,num_max)) if len(pw)<num_min or len(pw)>num_max: print("你输入你密码长度不符合要求") continue pw1=input("重新确认你设置的密码:") if pw1!=pw: print("你两次输入的密码不一样,请重新设置密码") continue else: print("恭喜你,注册成功!快去登录吧") dic[name]=pw return sign(dic,6,8) login(dic)
第二个是用文件作为用户信息保存的载体,可以保存不断写入的用户数据
def login(): index=0 while 1: user=input("输入用户名:").strip() pw=input("输入密码:") with open("user", encoding="UTF_8") as f: for line in f: k, v = line.strip().split(" ") if user==k and pw==v: print("登录成功") return True else: index += 1 if index<3: print("你的用户名或者密码有误,请重新登录") else: print("你已输入错误次数达到3次,已被限制登录") return False def sign(): with open("user",mode="r+",encoding="UTF_8") as f: while 1: name=input("输入你要设置的用户名:").strip() for line in f: k, v = line.split(" ") if name==k: print("这个用户名已经被注册,请换个名字") break else: break while 1: pw=input("输入你要设置的密码:") pw1=input("重新确认你设置的密码:") if pw1!=pw: print("你两次输入的密码不一样,请重新设置密码") continue else: print("恭喜你,注册成功!快去登录吧") f.write(name+" "+pw+" ") return sign() login()
以上是关于注册登录问题的主要内容,如果未能解决你的问题,请参考以下文章