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递归遍历列表及输出的实现方法
May 19 Python
django之session与分页(实例讲解)
Nov 13 Python
Python通过Pygame绘制移动的矩形实例代码
Jan 03 Python
Python的多维空数组赋值方法
Apr 13 Python
Pycharm 操作Django Model的简单运用方法
May 23 Python
Python中调用其他程序的方式详解
Aug 06 Python
简单了解pytest测试框架setup和tearDown
Apr 14 Python
pyinstaller将含有多个py文件的python程序做成exe
Apr 29 Python
Python3爬虫中关于中文分词的详解
Jul 29 Python
解决Python安装cryptography报错问题
Sep 03 Python
Python通过m3u8文件下载合并ts视频的操作
Apr 16 Python
教你如何使用Python开发一个钉钉群应答机器人
Jun 21 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
把77A收信机改造成收音机
2021/03/02 无线电
PHP 定界符 使用技巧
2009/06/14 PHP
php session和cookie使用说明
2010/04/07 PHP
PHP程序员面试 切忌急功近利(更需要注重以后的发展)
2010/09/01 PHP
PHP中的表达式简述
2016/05/29 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
2017/02/04 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
2018/12/08 PHP
firefo xml 读写实现js代码
2009/06/11 Javascript
JSON 客户端和服务器端的格式转换
2009/08/27 Javascript
js中巧用cssText属性批量操作样式
2011/03/13 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
2014/01/28 Javascript
JavaScript中的ubound函数使用实例
2014/11/04 Javascript
值得分享和收藏的Bootstrap学习教程
2016/05/12 Javascript
js正则表达式验证表单【完整版】
2017/03/06 Javascript
AngularJS 支付倒计时功能实现思路
2017/06/05 Javascript
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
js 获取json数组里面数组的长度实例
2017/10/31 Javascript
vuejs前后端数据交互之从后端请求数据的实例
2018/08/11 Javascript
vue中el-input绑定键盘按键(按键修饰符)
2020/07/22 Javascript
keep-alive保持组件状态的方法
2020/12/02 Javascript
[06:11]2014DOTA2国际邀请赛 专访团结一心的VG战队
2014/07/21 DOTA
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
2016/01/20 Python
python如何实现反向迭代
2018/03/20 Python
简单了解Django项目应用创建过程
2020/07/06 Python
Python threading模块condition原理及运行流程详解
2020/10/05 Python
StubHub新西兰:购买和出售你的门票
2019/04/22 全球购物
护士辞职信范文
2014/01/19 职场文书
手术室护士长竞聘书
2014/03/31 职场文书
2014年计划生育协会工作总结
2014/11/14 职场文书
2014年就业工作总结
2014/11/26 职场文书
学生党员检讨书范文
2014/12/27 职场文书
2016年秋季新学期致辞
2015/07/30 职场文书
教师教育心得体会
2016/01/19 职场文书
2019送给家人们的中秋节祝福语
2019/08/15 职场文书
用PYTHON去计算88键钢琴的琴键频率和音高
2022/04/10 Python
Java8利用Stream对列表进行去除重复的方法详解
2022/04/14 Java/Android