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 相关文章推荐
Python2.x中文乱码问题解决方法
Jun 02 Python
详解python之简单主机批量管理工具
Jan 27 Python
Python时间戳使用和相互转换详解
Dec 11 Python
python3.5 tkinter实现页面跳转
Jan 30 Python
通过cmd进入python的实例操作
Jun 26 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
Jun 28 Python
python3实现高效的端口扫描
Aug 31 Python
Python树莓派学习笔记之UDP传输视频帧操作详解
Nov 15 Python
Pycharm小白级简单使用教程
Jan 08 Python
tensorflow 重置/清除计算图的实现
Jan 19 Python
python去除删除数据中\u0000\u0001等unicode字符串的代码
Mar 06 Python
Python多线程多进程实例对比解析
Mar 12 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 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
php实现把数组按指定的个数分隔
2014/02/17 PHP
PHP+MySql+jQuery实现的&quot;顶&quot;和&quot;踩&quot;投票功能
2016/05/21 PHP
浅析PHP7新功能及语法变化总结
2016/06/17 PHP
php可变长参数处理函数详解
2017/02/22 PHP
PHP中使用mpdf 导出PDF文件的实现方法
2018/10/22 PHP
Prototype Function对象 学习
2009/07/12 Javascript
javascript 数组学习资料收集
2010/04/11 Javascript
基于Jquery的温度计动画效果
2010/06/18 Javascript
jQuery中fadeIn、fadeOut、fadeTo的使用方法(图片显示与隐藏)
2013/05/08 Javascript
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
2014/05/02 Javascript
javascript每日必学之基础入门
2016/02/16 Javascript
浅谈javascript中遇到的字符串对象处理
2016/11/18 Javascript
JQueryEasyUI之DataGrid数据显示
2016/11/23 Javascript
javascript cookie的基本操作(添加和删除)
2017/07/24 Javascript
微信小程序 五星评分的实现实例
2017/08/04 Javascript
详解nodejs中express搭建权限管理系统
2017/09/15 NodeJs
详解微信JS-SDK选择图片遇到的坑
2018/08/15 Javascript
为什么要使用Vuex的介绍
2019/01/19 Javascript
JS事件流与事件处理程序实例分析
2019/08/16 Javascript
layui动态绑定事件的方法
2019/09/20 Javascript
python常规方法实现数组的全排列
2015/03/17 Python
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
python 调用有道api接口的方法
2019/01/03 Python
使用Python实现毫秒级抢单功能
2019/06/06 Python
关于python中导入文件到list的问题
2020/10/31 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
详解CSS3中Media Queries的相关使用
2015/07/17 HTML / CSS
联想墨西哥官方网站:Lenovo墨西哥
2016/08/17 全球购物
100%羊绒:NakedCashmere
2020/08/26 全球购物
医药专业推荐信
2013/11/15 职场文书
交警失职检讨书
2015/01/26 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript
新手必备之MySQL msi版本下载安装图文详细教程
2021/05/21 MySQL
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
2021/06/13 Python
为自由献出你的心脏!「进击的巨人展 FINAL」2022年6月在台开展
2022/04/13 日漫