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创建字典的八种方式
Feb 27 Python
深入解析Python小白学习【操作列表】
Mar 23 Python
Python3.5装饰器典型案例分析
Apr 30 Python
解决Python3 控制台输出InsecureRequestWarning问题
Jul 15 Python
django-rest-framework解析请求参数过程详解
Jul 18 Python
画pytorch模型图,以及参数计算的方法
Aug 17 Python
Python线程障碍对象Barrier原理详解
Dec 02 Python
python机器学习库xgboost的使用
Jan 20 Python
Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
Mar 07 Python
基于python制作简易版学生信息管理系统
Apr 20 Python
一行代码python实现文件共享服务器
Apr 22 Python
用Python进行栅格数据的分区统计和批量提取
May 27 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实现网站插件机制的方法
2009/11/10 PHP
php全排列递归算法代码
2012/10/09 PHP
跟我学Laravel之配置Laravel
2014/10/15 PHP
PHP Hash算法:Times33算法代码实例
2015/05/13 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
2017/10/11 PHP
学习YUI.Ext基础第一天
2007/03/10 Javascript
JavaScript Event学习第七章 事件属性
2010/02/07 Javascript
新鲜出炉的js tips提示效果
2011/04/03 Javascript
datagrid框架的删除添加与修改
2013/04/08 Javascript
JavaScript中prototype为对象添加属性的误区介绍
2013/10/15 Javascript
Javascript图片上传前的本地预览实例
2014/06/16 Javascript
详解angularjs获取元素以及angular.element()用法
2017/07/25 Javascript
微信小程序 input表单与redio及下拉列表的使用实例
2017/09/20 Javascript
js中json对象和字符串的理解及相互转化操作实现方法
2017/09/22 Javascript
Angular移动端页面input无法输入的解决方法
2017/11/14 Javascript
Element-UI Table组件上添加列拖拽效果实现方法
2018/04/14 Javascript
Vue表单及表单绑定方法
2018/09/04 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
KOA+egg.js集成kafka消息队列的示例
2018/11/09 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
2018/12/11 Javascript
微信小程序 确认框的实现(附代码)
2019/07/23 Javascript
使用nodejs实现JSON文件自动转Excel的工具(推荐)
2020/06/24 NodeJs
微信小程序实现点击生成随机验证码
2020/09/09 Javascript
Python实现发送email的几种常用方法
2014/08/18 Python
Django Admin 实现外键过滤的方法
2017/09/29 Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
2019/03/30 Python
Etam艾格英国官网:法国著名女装品牌
2019/04/15 全球购物
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
2014/09/26 面试题
应聘文员自荐信范文
2014/03/11 职场文书
医德医风自我评价
2014/09/19 职场文书
幸福家庭事迹材料
2014/12/20 职场文书
黑暗中的舞者观后感
2015/06/18 职场文书
银行求职信怎么写
2019/06/20 职场文书
MySQL高速缓存启动方法及参数详解(query_cache_size)
2021/07/01 MySQL