Python登录注册验证功能实现


Posted in Python onJune 18, 2018

简介

本次项目登录注册验证是对之前学习知识点的加深学习,这次项目的练习的知识点有函数、判断语句、循环语句、文件操作等。

项目流程

运行代码之后,输出登录或者注册选项。

当选择登录之后,输入用户名密码,如果该用户信息没有注册过,就输出登录失败,如果该用户信息已经注册过,就显示登录成功。

当选择注册之后,输入用户名密码,如果该用户信息没有注册过,就输出注册成功,如果该用户信息已经注册过,就显示用户名已经存在,注册失败。

代码流程

运行代之后首先执行main()函数,mian()函数中接收用户输入的用户名和密码,用户选择登录,就调用loing()函数,将用户输入的信息在和存放用户信息的文件中的信息进行比对,如果有该用户的信息就登录成功,否则失败,用户选择注册,在接收到用户输入的用户名密码之后,调用register()函数,在这里将调用 user_exist()函数进行对用户输入的信息进行判断,如用户输入的信息存在存放用户信息的文件里,输出注册失败,否则注册成功。

在login()和user_exist()函数中调用了错误处理函数。

错误处理函数介绍

try:
.....
except IOError:
......

ry中的代码执行没有出现错误,就不再执行except中的代码,如果try中的代码出现错误,就执行except中的代码。

代码实现

def login(username, password):
  """
  用于用户名和密码的验证
  :param username:用户名
  :param paaword:密码
  :return:True,用户验证成功;False,用户验证失败
  """
  try:
    f = open("users", "r", encoding="utf-8")
    for line in f:
      line = line.strip() # 清除换行符
      # 无参数时移除两侧空格,换行符
      # 有参数时移除两侧指定的字符
      line_list = line.split("$")
      if line_list[0] == username and line_list[1] == password:
        # print("成功")
        return True
    return False
  except IOError:
    return False


def register(username, password):
  """
  注册用户
  1、打开文件
  2、用户名$密码
  :param username:用户名
  :param password:密码
  :return:True:注册成功;
  """
  with open("users", "a", encoding="utf-8") as f:
    temp = "\n" + username + "$" + password
    f.write(temp)
    return True


def user_exist(username):
  """
  检测用户名是否存在
  :param username:要检测的用户名
  :return: True:用户名存在;False:用户名不存在
  """
  # 一行一行的去查找,如果用户名存在,return True:False
  try:
    with open("users", "r", encoding="utf-8") as f:
      for line in f:
        line = line.strip()
        line_new = line.split("$")
        if line_new[0] == username:
          return True
      return False
  except IOError:
    return False


def main():
  while True:
    print("欢迎登录xxx系统")
    arg = input("1:登录,2:注册")

    if arg == "1":
      uer = input("请输入用户名:")
      pwd = input("请输入密码:")
      if login(uer, pwd):
        print("成功")
        break
      else:
        print("失败")
    elif arg == "2":
      user = input("请输入用户名:")
      pwd = input("请输入密码:")
      is_exist = user_exist(user)
      if is_exist:
        print("用户名已经存在,注册失败")
      else:
        if register(user, pwd):
          print("注册成功")
          continue
        else:
          print("注册失败")
    else:
      print("输入错误,请重新输入")


main()

这次的项目仅仅使用了之前学习的部分知识,比较简单的一个项目,之后会继续加深学习。

Python 相关文章推荐
Python中logging模块的用法实例
Sep 29 Python
Python基于socket模块实现UDP通信功能示例
Apr 10 Python
浅谈python实现Google翻译PDF,解决换行的问题
Nov 28 Python
python json.loads兼容单引号数据的方法
Dec 19 Python
Python 确定多项式拟合/回归的阶数实例
Dec 29 Python
python实现合并两个排序的链表
Mar 03 Python
python 实现识别图片上的数字
Jul 30 Python
Python整数与Numpy数据溢出问题解决
Sep 11 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
Sep 24 Python
Python生成个性签名图片获取GUI过程解析
Dec 16 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
Jan 02 Python
深入理解python多线程编程
Apr 18 Python
详解python3中zipfile模块用法
Jun 18 #Python
python爬取个性签名的方法
Jun 17 #Python
Python爬虫包BeautifulSoup学习实例(五)
Jun 17 #Python
Python爬虫包BeautifulSoup实例(三)
Jun 17 #Python
Python爬虫包BeautifulSoup异常处理(二)
Jun 17 #Python
Python爬虫包BeautifulSoup简介与安装(一)
Jun 17 #Python
python主线程捕获子线程的方法
Jun 17 #Python
You might like
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
2013/06/29 PHP
本地机apache配置基于域名的虚拟主机详解
2013/08/10 PHP
ThinkPHP基本的增删查改操作实例教程
2014/08/22 PHP
PHP简单遍历对象示例
2016/09/28 PHP
asp函数split()对应php函数explode()
2019/02/27 PHP
PHP如何解决微信文章图片防盗链
2020/12/09 PHP
Prototype 学习 Prototype对象
2009/07/12 Javascript
js 自制滚动条的小例子
2013/03/16 Javascript
JavaScript中访问节点对象的方法有哪些如何使用
2013/09/24 Javascript
Linux下使用jq友好的打印JSON技巧分享
2014/11/18 Javascript
nodejs爬虫遇到的乱码问题汇总
2017/04/07 NodeJs
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
2017/07/22 jQuery
在vue项目创建的后初始化首次使用stylus安装方法分享
2018/01/25 Javascript
vue-baidu-map 进入页面自动定位的解决方案(推荐)
2018/04/28 Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
2018/08/28 Javascript
React router动态加载组件之适配器模式的应用详解
2018/09/12 Javascript
使用Python实现博客上进行自动翻页
2017/08/23 Python
python 列表删除所有指定元素的方法
2018/04/19 Python
Python 实现两个列表里元素对应相乘的方法
2018/11/14 Python
对python打乱数据集中X,y标签对的方法详解
2018/12/14 Python
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
2019/01/07 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
python 生成器需注意的小问题
2020/09/29 Python
基于 HTML5 Canvas实现 的交互式地铁线路图
2018/03/05 HTML / CSS
世界上最大的隐形眼镜商店:1-800 Contacts
2018/11/03 全球购物
一些PHP的面试题
2015/05/06 面试题
小学英语教学反思
2014/01/30 职场文书
董事长秘书职责
2014/01/31 职场文书
《学棋》教后反思
2014/04/14 职场文书
说明书格式及范文
2014/05/07 职场文书
拔河比赛口号
2014/06/10 职场文书
居住证明范文
2015/06/17 职场文书
公司车辆维修管理制度
2015/08/05 职场文书
Sql-Server数据库单表查询 4.3实验课
2021/04/05 SQL Server
HTML5页面音频自动播放的实现方式
2021/06/21 HTML / CSS
spring 项目实现限流方法示例
2022/07/15 Java/Android