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数组复制拷贝的实现方法
Jun 09 Python
Python随机数random模块使用指南
Sep 09 Python
用matplotlib画等高线图详解
Dec 14 Python
Python3中的json模块使用详解
May 05 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
May 16 Python
Python闭包函数定义与用法分析
Jul 20 Python
django+xadmin+djcelery实现后台管理定时任务
Aug 14 Python
Python单例模式的四种创建方式实例解析
Mar 04 Python
Django实现将views.py中的数据传递到前端html页面,并展示
Mar 16 Python
python字符串判断密码强弱
Mar 18 Python
python判断正负数方式
Jun 03 Python
Jupyter Notebook添加代码自动补全功能的实现
Jan 07 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
dedecms中常见问题修改方法总结
2007/03/21 PHP
PHP实现的简单缓存类
2015/07/29 PHP
php实现给一张图片加上水印效果
2016/01/02 PHP
laravel Model 执行事务的实现
2019/10/10 PHP
PHP之header函数详解
2021/03/02 PHP
JS写的数字拼图小游戏代码[学习参考]
2008/10/29 Javascript
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
2008/12/25 Javascript
用于判断用户注册时,密码强度的JS代码
2009/01/01 Javascript
combox改进版 页面原型参考dojo的,比网上jQuery的那些combox功能强,代码更小
2010/04/15 Javascript
使用js dom和jquery分别实现简单增删改
2014/09/11 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
2015/08/21 Javascript
javascript实现简单加载随机色方块
2015/12/25 Javascript
Javascript的表单验证-提交表单
2016/03/18 Javascript
JavaScript微信定位功能实现方法
2016/11/29 Javascript
js 获取html5的data属性实现方法
2017/07/28 Javascript
jQuery实现上下滚动公告栏详细代码
2018/11/21 jQuery
浅谈layui分页控件field参数接收对象的问题
2019/09/20 Javascript
原生JavaScript实现贪吃蛇游戏
2020/11/04 Javascript
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
Python中使用Inotify监控文件实例
2015/02/14 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
2017/10/29 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
2020/06/24 Python
Pycharm以root权限运行脚本的方法
2019/01/19 Python
Python3最长回文子串算法示例
2019/03/04 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
Audible英国:有声读物,30天免费试用
2019/10/16 全球购物
开发中都用到了那些设计模式?用在什么场合?
2014/08/21 面试题
求职自荐书范文
2013/12/04 职场文书
查摆剖析材料范文
2014/09/30 职场文书
学校党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
给朋友的道歉短信
2015/05/12 职场文书
大国崛起观后感
2015/06/02 职场文书
Python图像处理之图像拼接
2021/04/28 Python
看完这篇文章获得一些java if优化技巧
2021/07/15 Java/Android
Mysql实现简易版搜索引擎的示例代码
2021/08/30 MySQL