Python实现注册和登录
一、注册账号需要实现的功能
1、输入:用户名,密码,密码确认
2、限制1:输入的账号和密码不能为空
3、限制2:两次输入密码必须一致
4、限制3:用户名不能重复
5、限制4:错误次数为4次
6、用字典保存,格式如下;其中,只需要输入username和passwd,新注册用户role默认都为1
{ '张三': {'passwd': '123', 'role': '1'}, '李四': {'passwd': 'abc', 'role': '2'} }
二、实现注册代码
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))
三、实现登录代码
f = open("users.txt", 'r', encoding='utf8')
users = eval(f.read())
for count in range(3):
name = input('请输入用户名: ')
password = input('请输入密码: ')
if name in users and password == users[name]['passwd']:
print('登录成功!')
break
else:
print('用户名或密码错误,还有%d次机会'%(2-count))
f.close()
Python实现注册和登录的更多相关文章
- python实现注册登录小程序
用python 实现模拟注册和登录的程序:用户信息最终以字典的格式储存在一个txt文件里,具体实现如下: users.txt里用户字典格式如下: { '}, '}, '} } # 注册 f = ope ...
- Python 实现简单的登录注册界面
Python 实现简单的登录注册界面 注意:编写代码之前需要导入很重要的包 import tkinter as tk import pickle from tkinter import message ...
- Python实现注册和三次验证登录
# 帐户表account:# sylar:123# alex:456# wusir:789# taibai:789# 需熟练的知识点:文件操作with open()/write()/read().去掉 ...
- Vue.js——使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
概述 上一篇我们介绍了如何使用vue resource处理HTTP请求,结合服务端的REST API,就能够很容易地构建一个增删查改应用.这个应用始终遗留了一个问题,Web App在访问REST AP ...
- 练习:python 操作Mysql 实现登录验证 用户权限管理
python 操作Mysql 实现登录验证 用户权限管理
- 1.注册或登录页面设计:UILabel,UIButton,UITextField
学习iOS开发已经有一段时日了,之前一直没有系统的对iOS开发的相关知识进行归纳总结,导致很多知识点云里雾里在脑子里形不成iOS开发的思想,现将自己在学习过程中遇到的一些知识进行总结,希望能对iOS初 ...
- PC 端微信扫码注册和登录
一.前言 先声明一下,本文所注重点为实现思路,代码及数据库设计主要为了展现思路,如果对代码效率有着苛刻要求的项目切勿照搬. 相信做过微信开发的人授权这块都没少做过,但是一般来说我们更多的是为移动端的网 ...
- bmob云 实现注册和登录的功能
向大家介绍一款我感觉非常溜的一款后端云服务bmob云 借助bmob云我们可以实现注册和登录页面的功能,下面就让我给大家演示一下借助bmob云服务实现这两个功能吧. 1. 用户是一个应用程序的核心.对 ...
- python paramiko模拟ssh登录,实现sftp上传或者下载文件
Python Paramiko模块的安装与使用详解 paramiko是短链接,不是持续链接,只能执行你设定的shell命令,可以加分号执行两次命令. http://www.111cn.net/phpe ...
随机推荐
- web综合案例02
web综合案例02 web综合案例02 web综合案例02 ... ... 内容待添加
- JS滑动下划线导航菜单实现原理
效果如下:http://campus.51job.com/test/zengxl/js html: <div class="mainnav"> <div clas ...
- java程序生成二维码
在物联网的时代,二维码是个很重要的东西了,现在无论什么东西都要搞个二维码标志,唯恐落伍,就差人没有用二维码识别了.也许有一天生分证或者户口本都会用二维码识别了.今天心血来潮,看见别人都为自己的博客添加 ...
- POJ1043 What's In A Name?
题目来源:http://poj.org/problem?id=1043 题目大意: 一个犯罪团伙有n个成员,每人有一个唯一的字符串作为id,每人还有一个唯一的字符串作为name.该团伙有一个hideo ...
- Scala_Load csv data to hive via spark2.1_via pass parameters
prepare csv: # vim /tmp/cars.csv year,make,model,comment,blank ","Tesla","S" ...
- C#基础之基本类型
本丝花了近半年,终于将<CLR Via C#>这本书看完了(请不要BS本人的看书速度T_T),这确实是一本好书,大大们推荐的果然值得一读. 虽然很多东西还没有尽得其要,我常想在自己深刻掌握 ...
- MySQL存储引擎InnoDB,MyISAM
MySQL存储引擎InnoDB,MyISAM1.区别:(1)InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语 ...
- HDU 5917 Instability ramsey定理
http://acm.hdu.edu.cn/showproblem.php?pid=5917 即世界上任意6个人中,总有3个人相互认识,或互相皆不认识. 所以子集 >= 6的一定是合法的. 然后 ...
- Quality of Service (QoS) in LTE
Background: Why we need QoS ? There are premium subscribers who always want to have better user expe ...
- JSP中,EL表达式向session中取出一个attribute和JSP脚本访问session取出一个attribute,写法有何不同?(转自百度知道)
EL表达式使用起来会更简洁,假如session中有一个属性A(attrA),那么EL和jsp脚本取值的方式如下: EL表达式:${ sessionScope.attrA } JSP脚本:<%=s ...