python实现登录与注册系统
作者:江liuer_666 发布时间:2022-04-26 02:32:38
标签: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)
初学者作品,有错请指教
来源:https://blog.csdn.net/weixin_51322568/article/details/109477348
0
投稿
猜你喜欢
- 本文实例讲述了PHP使用观察者模式处理异常信息的方法。分享给大家供大家参考,具体如下:异常信息的捕获对编程测试有着重要的意义,这里结合观察者
- “网页设计三剑客”可能很多新同学都没听说过,因为缔造神话的公司已经快销声匿迹。“网页设计三剑客”是Macromedia公司旗下Dreamwe
- 内容摘要:FCKeditor至今已经到了2.3.1版本了,对于国内的WEB开发者来说,也基本上都已经“闻风知多少”了,很多人将其融放到自己的
- 1. 二维(多维)数组降为一维数组方法1: reshape()+concatenate 函数,这个方法是间接法,利用 reshape() 函
- PyQt5安装在cmd下输入pip install PyQt5完成PyQt5安装,再安装qt designer,可以使用pip安装pip i
- 有一组4096长度的数据,需要找到一阶导数从正到负的点,和三阶导数从负到正的点,截取了一小段。394.0 388.0 389.0 388.0
- 一、线性回归的理论1)线性回归的基本概念线性回归是一种有监督的学习算法,它介绍的自变量的和因变量的之间的线性的相关关系,分为一元线性回归和多
- 来自某个nb招聘的题目:请给Array本地对象增加一个原型方法,它的用途是删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重
- 本文实例讲述了Python二叉树的镜像转换实现方法。分享给大家供大家参考,具体如下:问题描述操作给定的二叉树,将其变换为源二叉树的镜像。思路
- Oracle按不同时间分组统计的sql如下表table1: 日期(exportDate) &nbs
- 本文实例讲述了asp.net实现图片以二进制流输出的两种方法。分享给大家供大家参考,具体如下:方法一:System.IO.MemoryStr
- 前言值类型:所有像int、float、bool和string这些类型都属于值类型,使用这些类型的变量直接指向存在内存中的值,值类型的变量的值
- 在本机运行含有JavaScript代码的网页时(比如Google AD代码),IE浏览器会产生一个警告。这个“警告”确实很烦人,开始时还会误
- 本文实例讲述了Python3.5迭代器与生成器用法。分享给大家供大家参考,具体如下:1、列表生成式通过列表生成式可以直接创建一个列表。代码:
- 之前用 copy 不多,本以为它是个很方便的函数,没想到在做练习题时竟还是被它坑了。是我对他期望太多了。func copy(dst, src
- 在 python 开发中我们最常用的IDE就是PyCharm,有关PyCharm的优点这里就不在赘述。在项目开发中我们经常用到许多第三方库,
- 第一列按照goodsid局部分组,然后在分组后的记录中按照audittime升序排序得到序号,从而显示某商品得第几次变迁。 第二列是取该商品
- 本文实例讲述了Yii2中SqlDataProvider用法。分享给大家供大家参考,具体如下:第一种方法:$totalCount = Yii:
- 在进行浮动布局时,大多数人都深知,在必要的地方进行浮动清理:<div style="clear:both;">
- 最近公司有一个日文项目,由于之前使用的是自己开发的中文CMS,并没有将语言包分离,在网站建设调试过程中出现了令人头疼的乱码问题。乱码出现的原