Python 实现新用户注册及登陆认证
一、注册账号需要实现的功能
1、输入:用户名,密码,密码确认
2、限制1:输入的账号和密码不能为空
3、限制2:两次输入密码必须一致
4、限制3:用户名不能重复
5、限制4:错误次数为4次
6、用字典保存,格式如下;其中,只需要输入username和passwd,新注册用户role默认都为1
{ '张三': {'passwd': '123', 'role': '1'}, '李四': {'passwd': 'abc', 'role': '2'} }
注册部分代码:
-------------------------------------------------------------------------------------------
import json import ast f= open("users.txt", 'r+') users = eval(f.read()) #f.read()读取的是字符串,用eval()将字符串转化为字典 for i in range(4): name = input('请输入你要注册用户名: ') passwd = input('请输入你要注册密码: ') c_passwd = input('请再次确认密码: ') if len(name.strip()) != 0 and name not in users and len(passwd.strip()) != 0 and passwd == c_passwd: users[name]= {'passwd':passwd, 'role':1} #往字典中插入新数据 f.seek(0) f.truncate() #清空文件内容 f.writelines(str(users)) #将字典写入文件 print('恭喜,注册成功') f.close() break elif len(name.strip()) == 0: print('用户名不能为空,请重新输入。还可输入%d次' %(3-i)) elif name in users: print('用户名重复,请重新输入。还可输入%d次' %(3-i)) elif len(passwd.strip()) == 0: print('密码不能为空,请重新输入。还可输入%d次' %(3-i)) elif c_passwd != passwd: print('两次输入的密码不一致,请重新输入。还可输入%d次' %(3-i)) print('___________请尝试登陆___________')
登陆部分代码:
-------------------------------------------------------------------------------------------
count = 0 error_count = 1 while (count < 3): Login_name= input('请输入您的用户名:') Login_passwd = input('请输入您的密码:') f1 = open("users.txt", 'r+', encoding='utf8') Login_users = eval(f1.read()) if Login_name in Login_users and Login_passwd == Login_users[Login_name]['passwd'] : print("login ok") break else : print("User password authentication error 还有%d次机会" %(3-count1)) error_count = error_count + 1 count = count + 1
作者: 忙 碌 使 我 忘 了 伤 痛
出处: https://www.cnblogs.com/Hello-python/>
关于作者:专注python、linux、运维、IT,请多多赐教!
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(1198987828@qq.com)咨询.

浙公网安备 33010602011771号