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线程、进程和协程详解
Jul 19 Python
Python应用03 使用PyQT制作视频播放器实例
Dec 07 Python
numpy数组拼接简单示例
Dec 15 Python
[原创]python爬虫(入门教程、视频教程)
Jan 08 Python
简单谈谈Python的pycurl模块
Apr 07 Python
浅析Python数据处理
May 02 Python
Python实现的从右到左字符串替换方法示例
Jul 06 Python
python进行TCP端口扫描的实现
Dec 21 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
Nov 19 Python
基于pytorch的lstm参数使用详解
Jan 14 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
Mar 06 Python
一篇文章教你用python画动态爱心表白
Nov 22 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 ajax 分页类代码
2008/11/13 PHP
PHP中Date()时间日期函数的使用方法小结
2011/04/20 PHP
php统计文件大小,以GB、MB、KB、B输出
2011/05/29 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
2015/07/06 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
2016/04/02 PHP
php使用GD2绘制几何图形示例
2017/02/15 PHP
js使用for循环查询数组中是否存在某个值
2014/08/12 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
2015/09/17 Javascript
浅析如何利用JavaScript进行语音识别
2016/10/27 Javascript
详解自动生成博客目录案例
2016/12/09 Javascript
jQuery实现弹出窗口弹出div层的实例代码
2017/01/09 Javascript
基于Vuex无法观察到值变化的解决方法
2018/03/01 Javascript
javascript如何实现create方法
2019/11/04 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
2020/05/14 Javascript
解决vue单页面 回退页面 keeplive 缓存问题
2020/07/22 Javascript
[09:13]2014DOTA2国际邀请赛 中国区预选赛coser表演
2014/05/23 DOTA
[01:04:22]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 IG vs EG
2018/04/01 DOTA
Python md5与sha1加密算法用法分析
2017/07/14 Python
Python中执行存储过程及获取存储过程返回值的方法
2017/10/07 Python
python如何定义带参数的装饰器
2018/03/20 Python
Python if语句知识点用法总结
2018/06/10 Python
selenium与xpath之获取指定位置的元素的实现
2021/01/26 Python
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
详解FireFox下Canvas使用图像合成绘制SVG的Bug
2019/07/10 HTML / CSS
印度尼西亚最大和最全面的网络商城:Blibli.com
2017/10/04 全球购物
经典c++面试题二
2015/08/14 面试题
办公室文书岗位职责
2013/12/16 职场文书
初中国旗下的演讲稿
2014/08/28 职场文书
奥巴马经典演讲稿
2014/09/13 职场文书
关于对大人不礼貌的检讨书
2014/09/29 职场文书
公务员检讨书
2014/11/01 职场文书
鲁滨逊漂流记读书笔记
2015/06/26 职场文书
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js
python画条形图的具体代码
2022/04/20 Python
MyBatis XPathParser解析器使用范例详解
2022/07/15 Java/Android
JS实现页面炫酷的时钟特效示例
2022/08/14 Javascript