python实现登录与注册系统

 更新时间:2020年11月30日 09:55:39   作者:江liuer_666  
这篇文章主要为大家详细介绍了python实现登录与注册系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

实现功能

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

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

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

具体代码如下:

#-*- 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)

初学者作品,有错请指教

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

相关文章

  • 解决pyqt5异常退出无提示信息的问题

    解决pyqt5异常退出无提示信息的问题

    这篇文章主要介绍了解决pyqt5异常退出无提示信息的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 详解PyTorch预定义数据集类datasets.ImageFolder使用方法

    详解PyTorch预定义数据集类datasets.ImageFolder使用方法

    这篇文章主要为大家介绍了PyTorch预定义数据集类datasets.ImageFolder使用方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Python使用PEfile模块实现分析PE文件

    Python使用PEfile模块实现分析PE文件

    PeFile模块是Python中一个强大的便携式第三方PE格式分析工具,用于解析和处理Windows可执行文件,本文主要就来讲讲如何使用PEfile模块实现分析PE文件,需要的可以参考下
    2023-08-08
  • python安装cx_Oracle和wxPython的方法

    python安装cx_Oracle和wxPython的方法

    这篇文章主要介绍了python安装cx_Oracle和wxPython的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • Python运行第一个PySide2的窗体程序

    Python运行第一个PySide2的窗体程序

    本文主要介绍了Python运行第一个PySide2的窗体程序,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Python xlrd模块导入过程及常用操作

    Python xlrd模块导入过程及常用操作

    这篇文章主要介绍了Python xlrd模块导入过程及常用操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Python操作dict时避免出现KeyError的几种解决方法

    Python操作dict时避免出现KeyError的几种解决方法

    这篇文章主要介绍了Python操作dict时避免出现KeyError的几种解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 在Python中通过threading模块定义和调用线程的方法

    在Python中通过threading模块定义和调用线程的方法

    由于著名的GIL的存在,Python中虽然能创建多条线程,但却不能同时执行...anyway,这里我们还是来学习一下在Python中通过threading模块定义和调用线程的方法
    2016-07-07
  • python 实现关联规则算法Apriori的示例

    python 实现关联规则算法Apriori的示例

    这篇文章主要介绍了python 实现关联规则算法Apriori的示例,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-09-09
  • 基于PyQt5完成pdf转word功能

    基于PyQt5完成pdf转word功能

    本文介绍的pdf转word功能还有一些待完善地方,例如可增加预览功能,实现每页预览,当然我们可以在后续阶段逐渐完善,对基于PyQt5完成的pdf转word功能感兴趣的朋友一起看看吧
    2022-06-06

最新评论