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抓取网页时字符集转换问题处理方案分享
Jun 19 Python
Python实现的多线程端口扫描工具分享
Jan 21 Python
Python中关于字符串对象的一些基础知识
Apr 08 Python
Python实现一个简单的验证码程序
Nov 03 Python
详解windows python3.7安装numpy问题的解决方法
Aug 13 Python
浅谈python实现Google翻译PDF,解决换行的问题
Nov 28 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
Mar 27 Python
python实现通过队列完成进程间的多任务功能示例
Oct 28 Python
Python语言异常处理测试过程解析
Jan 08 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
Apr 24 Python
python识别围棋定位棋盘位置
Jul 26 Python
python基础之类属性和实例属性
Oct 24 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
WINDOWS 2000下使用ISAPI方式安装PHP
2006/09/05 PHP
php时间不正确的解决方法
2008/04/09 PHP
PHP不用递归遍历目录下所有文件的代码
2014/07/04 PHP
19个Android常用工具类汇总
2014/12/30 PHP
php查询操作实现投票功能
2016/05/09 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
javascript天然的迭代器
2010/10/29 Javascript
javascript仿qq界面的折叠菜单实现代码
2012/12/12 Javascript
JavaScript中的apply和call函数详解
2014/07/20 Javascript
nodejs 提示‘xxx’ 不是内部或外部命令解决方法
2014/11/20 NodeJs
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
2015/12/03 Javascript
JS日程管理插件FullCalendar简单实例
2017/02/07 Javascript
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
vue中axios解决跨域问题和拦截器的使用方法
2018/03/07 Javascript
React Native日期时间选择组件的示例代码
2018/04/27 Javascript
webpack4的迁移的使用方法
2018/05/25 Javascript
Node.js中读取TXT文件内容fs.readFile()用法
2018/10/10 Javascript
vue+iview 实现可编辑表格的示例代码
2018/10/31 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
详解JavaScript的变量
2019/04/04 Javascript
JavaScript实现省市联动效果
2019/11/22 Javascript
[01:05:40]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第三场
2014/05/24 DOTA
[59:15]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.20
2020/11/20 DOTA
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
Python实现 多进程导入CSV数据到 MySQL
2017/02/26 Python
python得到windows自启动列表的方法
2018/10/14 Python
Python实现Wordcloud生成词云图的示例
2020/03/30 Python
Tensorflow与Keras自适应使用显存方式
2020/06/22 Python
使用css3做0.5px的细线的示例代码
2018/01/18 HTML / CSS
林清轩官方网站:山茶花润肤油开创者
2016/10/26 全球购物
商场经理竞聘演讲稿
2014/01/01 职场文书
单位办理社保介绍信
2014/01/10 职场文书
2015年教育实习工作总结
2015/04/24 职场文书
高三数学教学反思
2016/02/18 职场文书
CSS3常见动画的实现方式
2021/04/14 HTML / CSS
Li list-style-image 图片垂直居中实现方法
2023/05/21 HTML / CSS