python实现登录与注册系统


Posted in Python onNovember 30, 2020

本文实例为大家分享了python实现登录与注册系统的具体代码,供大家参考,具体内容如下

实现功能

1.调用文本文件里的用户信息
2.可以将注册信息存储在文本文件里
3.实现了密码格式的限制

具体用户信息将如下格式存储在txt文本文件下

python实现登录与注册系统

转换后便于代码利用的格式(列表中嵌套字典)

python实现登录与注册系统

具体代码如下:

#-*- coding=utf8 -*- 
# @author:sololi
# date: 2020/11/3
# 文件说明 :
import sys
def register(username,password):#登录功能,且与存储用户表的文本文件进行比较
  #验证用户名
  shuju=readfile()
  jg1 = 0
  i = 0
  while (i < len(shuju)):
   if (username == shuju[i]["用户名"]):
    print("用户名正确")
    jg1 = 1
    break
   i += 1
  # 用户名错误将不再验证密码
  if (jg1 != 1):
   print("用户名错误")
  # 验证密码
  if (jg1 == 1):
   jg2 = 0
   i = 0
   while (i < len(shuju)):
    if (password == shuju[i]["密码"]):
     print("密码正确")
     jg2 = 1
     break
    i += 1
   if (jg2 != 1):
    print("密码错误")

def logon(username):#注册功能,且以正确格式存入文本文件
   shuju=readfile()
   jg3 = 0
   i = 0
   while (i < len(shuju)):
    if (username == shuju[i]["用户名"]):
     print("用户名已经存在")
     jg3 = 1
     break
    i += 1
   if(jg3 == 0):
    while True:
     password = input("请输入注册的密码(密码不能小于6位,且不能为纯数字)")
     if (str.isdigit(password)==1) or (len(password)<6):
       print("密码格式错误")
     else:
      break
    passwordagain=input("请再次确认密码")
    while True:
     if(password==passwordagain):
      break
     else:
      print("两次密码不一致")
      passwordagain = input("请再次确认密码")
    # 将注册的用户信息存储到文本文件中
    f = open("data", mode='a+', encoding="utf8")
    if shuju == []:
     f.write("用户名:{},密码:{}".format(username, password))
    if shuju != []:
     f.write("\n用户名:{},密码:{}".format(username, password))
    print("注册成功")
    f.close()

def readfile():#将数据转换成列表字典形式,放在data.txt中便于后面登录与注册存放数据
 f = open('data', "r+", encoding="utf8")
 shuju = []
 b = []
 aa = {}
 for line in f.readlines():
  line = line.strip('\n')
  a = line.split(' ')
  i = 0
  while i < len(a):
   b = a[i].split(',')
   i += 1

  j = 0
  while j < len(b):
   if b == " ":
    break
   c = b[j].split(':', 1)
   aa[c[0]] = c[1]
   i += 1
   j += 1

  shuju.append(aa.copy()) # copy是为了防止添加是数据类型不同出错
 f.close()
 return shuju

while True:
 choice=input("登录输入1,注册输入2,其他任意键退出")
 if choice=="1":
  id=input("输入您的账号")
  pw=input("输入您的密码")
  register(id,pw)
  break
 if choice=="2":
  id=input("输入你注册的账号")
  logon(id)
  continue
 else:
  print("退出成功")
  sys.exit(0)

初学者作品,有错请指教

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现根据窗口标题调用窗口的方法
Mar 13 Python
Python3.x版本中新的字符串格式化方法
Apr 24 Python
python中模块的__all__属性详解
Oct 26 Python
关于Python数据结构中字典的心得
Dec 04 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
Jan 31 Python
基于python中theano库的线性回归
Aug 31 Python
Python sep参数使用方法详解
Feb 12 Python
Django 多对多字段的更新和插入数据实例
Mar 31 Python
PyQt5结合matplotlib绘图的实现示例
Sep 15 Python
Pycharm github配置实现过程图解
Oct 13 Python
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
Apr 14 Python
python区块链持久化和命令行接口实现简版
May 25 Python
python代码实现图书管理系统
Nov 30 #Python
python 爬虫网页登陆的简单实现
Nov 30 #Python
Prometheus开发中间件Exporter过程详解
Nov 30 #Python
python实现猜拳游戏项目
Nov 30 #Python
Python解析微信dat文件的方法
Nov 30 #Python
Python应用自动化部署工具Fabric原理及使用解析
Nov 30 #Python
使用python将微信image下.dat文件解密为.png的方法
Nov 30 #Python
You might like
上海地方志办公室-上海电子仪表工业志
2021/03/04 无线电
PHP5.5迭代生成器用法实例详解
2016/03/16 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
Laravel 5.5 实现禁用用户注册示例
2019/10/24 PHP
一个对于Array的简单扩展
2006/10/03 Javascript
用Javscript实现表单复选框的全选功能
2007/05/25 Javascript
JS之小练习代码
2008/10/12 Javascript
javascript 原型模式实现OOP的再研究
2009/04/09 Javascript
JS之Date对象和获取系统当前时间详解
2014/01/13 Javascript
JQuery实现动态表格点击按钮表格增加一行
2014/08/24 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
jQuery弹出层插件popShow(改进版)用法示例
2017/01/23 Javascript
详解前后端分离之VueJS前端
2017/05/24 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
2017/07/11 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
JS实现导出Excel的五种方法详解【附源码下载】
2018/03/15 Javascript
BootStrap table实现表格行拖拽效果
2018/12/01 Javascript
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
Python 异常处理实例详解
2014/03/12 Python
Python3 能振兴 Python的原因分析
2014/11/28 Python
Python定时执行之Timer用法示例
2015/05/27 Python
Python选课系统开发程序
2016/09/02 Python
详解Python3中字符串中的数字提取方法
2017/01/14 Python
利用Python操作消息队列RabbitMQ的方法教程
2017/07/19 Python
Python多线程编程之多线程加锁操作示例
2018/09/06 Python
Django中Middleware中的函数详解
2019/07/18 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
2020/01/14 Python
Python文本文件的合并操作方法代码实例
2020/03/31 Python
python缩进长度是否统一
2020/08/02 Python
三星印度官网:Samsung印度
2019/08/03 全球购物
军训心得体会
2013/12/31 职场文书
学习自我鉴定
2014/02/01 职场文书
php 解析非标准json、非规范json
2021/04/01 PHP
如何用PHP实现多线程编程
2021/05/26 PHP
Python爬虫基础之初次使用scrapy爬虫实例
2021/06/26 Python