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 ...
随机推荐
- Eclipse中导入项目的方法
在Eclipse导入其他项目时,可能由于开发软件.JDK版本.Tomcat服务器版本的不同等多种原因,造成项目报错的问题 可以通过以下步骤解决: 1.在Project Explorer面板下,右键— ...
- POST和 GET
http GET 和 POST 请求的优缺点.区别以及误区 Get和Post在面试中一般都会问到,一般的区别: (1)post更安全(不会作为url的一部分,不会被缓存.保存在服务器日志.以及 ...
- 洛谷 P4397 [JLOI2014]聪明的燕姿 / TOPOI 测验1315, 问题E: 1935: 聪明的燕姿 解题报告
题目链接 : 1. 洛谷 2.topoi . 大致题意:输入一个数s,找出所有约数和为s的数 关于一个数的约数和求法: 一个>1的整数可以被分解为多个 质数 的乘方,设数 s = p1k1 * ...
- java insert mysql 中文乱码
jdbc:mysql://192.168.1.77:3306/db360?useUnicode=true&characterEncoding=UTF-8 drop database if ex ...
- adb 调系统时间
1.修改前提 获取系统root权限,然后adb shell进入shell界面 adb shell su 2.时区设置 cat /data/property/persist.sys.timezone / ...
- 与postgis相关的一些常用的sql
create table NODES (ID SERIAL not null,geometry geography(POINTZ, 4326) null); create table EDGES (I ...
- Dijkstra算法(求一点到任意一点的最短距离)
思路:先找出最短的一个点,也就是起点,从起点出发,找最短的边,同时标记起点为true(代表已经访问过),访问过的点就不用再访问了,依次下去,保证每一次找到的边都是最短的边 到最后没有边可以更新了就代表 ...
- UnityError 切换场景灯光变黑问题解决
编辑器在当前场景时,它的灯光是已经渲染好了,但重新加载的时候灯光没有进行渲染 解决方法如下: Window>>lighting>>Scene面板>>右下角build ...
- Java面向对象_对象一一对应关系和this关键字
一.打个比方,一个人有一个身份证号,一个身份证号对应一个人.一个英雄对应一把武器,一把武器对应一个英雄.生活中很多对象都存在一一对应关系,那么一一对应关系在代码中是如何实现的呢?举个例子,英雄和武器一 ...
- Kotlin基础知识
1. 改进点/基础 //安全判空 val length = text?.length; //类型转换 if (object is Car) { var car = object as Ca } //操 ...