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中ConfigParse模块的用法
Sep 29 Python
python中星号变量的几种特殊用法
Sep 07 Python
Python制作简易注册登录系统
Dec 15 Python
教你使用python画一朵花送女朋友
Mar 29 Python
Python concurrent.futures模块使用实例
Dec 24 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
Jan 09 Python
Python模块/包/库安装的六种方法及区别
Feb 24 Python
GDAL 矢量属性数据修改方式(python)
Mar 10 Python
Python多分支if语句的使用
Sep 03 Python
用python查找统一局域网下ip对应的mac地址
Jan 13 Python
python 制作本地应用搜索工具
Feb 27 Python
Python机器学习之逻辑回归
May 11 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测试硬盘写入速度示例
2014/01/27 PHP
CodeIgniter与PHP5.6的兼容问题
2015/07/16 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
2015/08/23 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
2016/12/15 PHP
php获取小程序码的实现代码(B类接口)
2020/06/13 PHP
javascript编程起步(第七课)
2007/02/27 Javascript
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
2013/05/27 Javascript
js冒泡法和数组转换成字符串示例代码
2013/08/14 Javascript
JS中的异常处理方法分享
2013/12/22 Javascript
JS 数字转换研究总结
2013/12/26 Javascript
用box固定长宽实现图片自动轮播js代码
2014/06/09 Javascript
深入理解javascript作用域和闭包
2014/09/23 Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
2015/10/27 Javascript
理解javascript函数式编程中的闭包(closure)
2016/03/08 Javascript
JQuery实现DIV其他动画效果的简单实例
2016/09/18 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
2016/10/20 Javascript
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
详解vue3.0 的 Composition API 的一种使用方法
2020/10/26 Javascript
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
[49:08]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.27
2020/12/01 DOTA
Python3实现发送QQ邮件功能(html)
2017/12/15 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
Django 中间键和上下文处理器的使用
2019/03/17 Python
python并发爬虫实用工具tomorrow实用解析
2019/09/25 Python
keras模型可视化,层可视化及kernel可视化实例
2020/01/24 Python
基于python判断字符串括号是否闭合{}[]()
2020/09/21 Python
python两种获取剪贴板内容的方法
2020/11/06 Python
Python开发.exe小工具的详细步骤
2021/01/27 Python
html5利用canvas实现颜色容差抠图功能
2019/12/23 HTML / CSS
乌克兰数字设备、配件和智能技术的连锁商店:KTC
2020/08/18 全球购物
药剂专业求职信
2014/06/20 职场文书
单位委托书格式范本
2014/09/29 职场文书
2014年行政工作总结
2014/11/19 职场文书
2015年元旦主持词开场白
2014/12/14 职场文书
2015秋季幼儿园开学寄语
2015/03/25 职场文书
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python