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中的多重继承实例讲解
Sep 28 Python
Django框架中render_to_response()函数的使用方法
Jul 16 Python
matplotlib 纵坐标轴显示数据值的实例
May 25 Python
Python wxpython模块响应鼠标拖动事件操作示例
Aug 23 Python
使用TensorFlow实现简单线性回归模型
Jul 19 Python
django 配置阿里云OSS存储media文件的例子
Aug 20 Python
Keras loss函数剖析
Jul 06 Python
python爬虫使用正则爬取网站的实现
Aug 03 Python
浅析Python中字符串的intern机制
Oct 03 Python
Python识别处理照片中的条形码
Nov 16 Python
细说NumPy数组的四种乘法的使用
Dec 18 Python
Python如何使用logging为Flask增加logid
Mar 30 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页面的php代码
2009/08/27 PHP
php中jpgraph类库的使用介绍
2013/08/08 PHP
PHP URL路由类实例
2013/11/12 PHP
PHP基于数组实现的分页函数实例
2014/08/20 PHP
Javascript Throttle & Debounce应用介绍
2013/03/19 Javascript
JS中Location使用详解
2015/05/12 Javascript
jquery插件jquery.nicescroll实现图片无滚动条左右拖拽的方法
2015/08/10 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
2015/08/18 Javascript
深入浅析JavaScript中prototype和proto的关系
2015/11/15 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)
2016/08/18 Javascript
angular动态表单制作
2018/02/23 Javascript
详解Vue Elememt-UI构建管理后台
2018/02/27 Javascript
JavaScript 跨域之POST实现方法
2018/05/07 Javascript
nodejs(officegen)+vue(axios)在客户端导出word文档的方法
2018/07/31 NodeJs
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
js实现无限瀑布流实例方法
2019/09/16 Javascript
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
python sort、sorted高级排序技巧
2014/11/21 Python
python 图像平移和旋转的实例
2019/01/10 Python
python制作抖音代码舞
2019/04/07 Python
Pycharm运行加载文本出现错误的解决方法
2019/06/27 Python
Python中list的交、并、差集获取方法示例
2019/08/01 Python
python列表返回重复数据的下标
2020/02/10 Python
Python selenium抓取虎牙短视频代码实例
2020/03/02 Python
python画图常规设置方式
2020/03/05 Python
python实现简单的tcp 文件下载
2020/09/16 Python
办公室年终个人自我评价
2013/10/28 职场文书
物流专业大学应届生求职信
2013/11/03 职场文书
医务人员竞聘职务自我评价分享
2013/11/08 职场文书
建筑结构施工专业推荐信
2014/02/21 职场文书
一年级学生评语
2014/04/23 职场文书
授权委托书样本及填写说明
2014/09/19 职场文书
2014年教研工作总结
2014/12/06 职场文书
运动会通讯稿200字
2015/07/20 职场文书
详解CSS故障艺术
2021/05/25 HTML / CSS