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之hello world
May 21 Python
Python单链表简单实现代码
Apr 27 Python
python中如何使用朴素贝叶斯算法
Apr 06 Python
Python实现的rsa加密算法详解
Jan 24 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
Apr 17 Python
python 将print输出的内容保存到txt文件中
Jul 17 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
May 13 Python
Python 切分数组实例解析
Nov 07 Python
Python面向对象封装操作案例详解 II
Jan 02 Python
解决Python中报错TypeError: must be str, not bytes问题
Apr 07 Python
基于PyQT5制作一个桌面摸鱼工具
Feb 15 Python
Python matplotlib可视化之绘制韦恩图
Feb 24 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作的文本留言本的例子(四)
2006/10/09 PHP
PHP编程过程中需要了解的this,self,parent的区别
2009/12/30 PHP
PHP上传文件参考配置大文件上传
2015/12/16 PHP
PHP常用设计模式之委托设计模式
2016/02/13 PHP
YUI 读码日记之 YAHOO.lang.is*
2008/03/22 Javascript
利用onresize使得div可以随着屏幕大小而自适应的代码
2010/01/15 Javascript
javascript:void(0)的作用示例介绍
2013/10/28 Javascript
Javascript中this的用法详解
2014/09/22 Javascript
jQuery+AJAX实现遮罩层登录验证界面(附源码)
2020/09/13 Javascript
JS中对象与字符串的互相转换详解
2016/05/20 Javascript
jquery配合.NET实现点击指定绑定数据并且能够一键下载
2016/10/28 Javascript
js时间查询插件使用详解
2017/04/07 Javascript
jquery replace方法去空格
2017/05/08 jQuery
[js高手之路]HTML标签解释成DOM节点的实现方法
2017/08/31 Javascript
Node.js使用Koa搭建 基础项目
2018/01/08 Javascript
微信小程序版翻牌小游戏
2018/01/26 Javascript
微信小程序input框中加入小图标的实现方法
2018/06/19 Javascript
微信小程序文章详情页跳转案例详解
2019/07/09 Javascript
[05:06]2017亚洲邀请赛DAC回顾片
2017/04/19 DOTA
python中关于时间和日期函数的常用计算总结(time和datatime)
2013/03/08 Python
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
Python使用BeautifulSoup库解析HTML基本使用教程
2016/03/31 Python
利用Python进行数据可视化常见的9种方法!超实用!
2018/07/11 Python
Anaconda下配置python+opencv+contribx的实例讲解
2018/08/06 Python
python 在指定范围内随机生成不重复的n个数实例
2019/01/28 Python
python实现可变变量名方法详解
2019/07/01 Python
Python Numpy计算各类距离的方法
2019/07/05 Python
基于Tensorflow高阶读写教程
2020/02/10 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
css3实现文字扫光渐变动画效果的示例
2017/11/07 HTML / CSS
什么是SQL Server的确定性函数和不确定性函数
2016/08/04 面试题
大学生毕业自我鉴定范文
2013/09/19 职场文书
中英文求职信范文
2014/01/27 职场文书
新闻传媒系求职信范文
2014/04/19 职场文书
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
2021/06/30 SQL Server