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基于回溯法子集树模板解决取物搭配问题实例
Sep 02 Python
Python面向对象编程基础解析(二)
Oct 26 Python
python抓取文件夹的所有文件
Feb 27 Python
python实现类之间的方法互相调用
Apr 29 Python
python中协程实现TCP连接的实例分析
Oct 14 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
Nov 14 Python
python中使用 xlwt 操作excel的常见方法与问题
Jan 13 Python
使用Filter过滤python中的日志输出的实现方法
Jul 17 Python
在OpenCV里实现条码区域识别的方法示例
Dec 04 Python
Python3 全自动更新已安装的模块实现
Jan 06 Python
Python解析多帧dicom数据详解
Jan 13 Python
pytorch 模型的train模式与eval模式实例
Feb 20 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
php时间不正确的解决方法
2008/04/09 PHP
PHP简单获取随机数的常用方法小结
2017/06/07 PHP
会自动逐行上升的文本框
2006/06/30 Javascript
Mootools 1.2教程 选项卡效果(Tabs)
2009/09/15 Javascript
js获取URL的参数的方法(getQueryString)示例
2013/09/29 Javascript
JS中的Replace方法使用经验分享
2015/05/20 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
2016/07/05 Javascript
AngularJS实现根据不同条件显示不同控件
2017/04/20 Javascript
详解如何让Express支持async/await
2017/10/09 Javascript
vue项目持久化存储数据的实现代码
2018/10/01 Javascript
vue-lazyload使用总结(推荐)
2018/11/01 Javascript
JavaScript实现页面中录音功能的方法
2019/06/04 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
2020/02/01 Javascript
vue实现放大镜效果
2020/09/17 Javascript
vue中h5端打开app(判断是安卓还是苹果)
2021/02/26 Vue.js
python3实现基于用户的协同过滤
2018/05/31 Python
详解Python进阶之切片的误区与高级用法
2018/12/24 Python
python解析含有重复key的json方法
2019/01/22 Python
python被修饰的函数消失问题解决(基于wraps函数)
2019/11/04 Python
python与mysql数据库交互的实现
2020/01/06 Python
Python 实现自动完成A4标签排版打印功能
2020/04/09 Python
浅析Python 条件控制语句
2020/07/15 Python
解决html5中video标签无法播放mp4问题的办法
2017/05/07 HTML / CSS
Chemist Warehouse官方海外旗舰店:澳洲第一连锁大药房
2017/08/25 全球购物
Hotter Shoes英国官网:英伦风格,舒适的鞋子
2017/12/28 全球购物
JS原生实现轮播图的几种方法
2021/03/23 Javascript
爱情寄语大全
2014/04/09 职场文书
环保倡议书
2014/04/14 职场文书
优质服务活动实施方案
2014/05/02 职场文书
2014年会计工作总结
2014/11/27 职场文书
高一作文之乐趣
2019/11/21 职场文书
Python文件的操作示例的详细讲解
2021/04/08 Python
SQL Server2019数据库之简单子查询的具有方法
2021/04/27 SQL Server
基于Pygame实现简单的贪吃蛇游戏
2021/12/06 Python
SpringBoot2零基础到精通之数据库专项精讲
2022/03/22 Java/Android