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爬取读者并制作成PDF
Mar 10 Python
Python画图学习入门教程
Jul 01 Python
python实现定时自动备份文件到其他主机的实例代码
Feb 23 Python
python日期时间转为字符串或者格式化输出的实例
May 29 Python
解决python 自动安装缺少模块的问题
Oct 22 Python
pip 安装库比较慢的解决方法(国内镜像)
Oct 06 Python
Python tkinter三种布局实例详解
Jan 06 Python
如何安装并在pycharm使用selenium的方法
Apr 30 Python
python合并多个excel文件的示例
Sep 23 Python
Python内置函数及功能简介汇总
Oct 13 Python
OpenCV实现机器人对物体进行移动跟随的方法实例
Nov 09 Python
如何在Python中妥善使用进度条详解
Apr 05 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
PHP MemCached高级缓存配置图文教程
2010/08/05 PHP
ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
2014/08/08 PHP
ThinkPHP中使用Ueditor富文本编辑器
2015/09/02 PHP
PHP使用http_build_query()构造URL字符串的方法
2016/04/02 PHP
zend framework重定向方法小结
2016/05/28 PHP
javascript fullscreen全屏实现代码
2009/04/09 Javascript
javascript权威指南 学习笔记之null和undefined
2011/09/25 Javascript
深入理解JavaScript系列(25):设计模式之单例模式详解
2015/03/03 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
Bootstrap项目实战之首页内容介绍(全)
2016/04/25 Javascript
关于Vue.js一些问题和思考学习笔记(1)
2016/12/02 Javascript
NodeJS遍历文件生产文件列表功能示例
2017/01/22 NodeJs
AngularJS中的作用域实例分析
2018/05/16 Javascript
Vue实现美团app的影院推荐选座功能【推荐】
2018/08/29 Javascript
vue微信分享到朋友圈 vue微信发送给好友
2018/11/28 Javascript
koa2 从入门到精通(小结)
2019/07/23 Javascript
Python中的index()方法使用教程
2015/05/18 Python
Python开发的HTTP库requests详解
2017/08/29 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
python实现批量修改图片格式和尺寸
2018/06/07 Python
pandas求两个表格不相交的集合方法
2018/12/08 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
2019/08/06 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
python实现自动清理重复文件
2020/08/24 Python
CSS3实现翘边的阴影效果的代码示例
2016/06/13 HTML / CSS
html5 拖拽上传图片实例演示
2013/04/01 HTML / CSS
阿里巴巴的Oracle DBA笔试题答案-SQL tuning类
2016/04/03 面试题
生日邀请函范文
2014/01/13 职场文书
学生实习介绍信
2014/01/15 职场文书
监察局领导班子四风问题整改措施思想汇报
2014/10/05 职场文书
2014年车间工作总结
2014/11/21 职场文书
2015年社区创卫工作总结
2015/04/21 职场文书
文化大革命观后感
2015/06/17 职场文书
军训新闻稿范文
2015/07/17 职场文书
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
2021/04/27 Python
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
2022/06/01 Servers