Python实现登录接口的示例代码


Posted in Python onJuly 21, 2017

之前写了Python实现登录接口的示例代码,最近需要回顾,就顺便发到随笔上了

要求:

1.输入用户名和密码

2.认证成功,显示欢迎信息

3.用户名3次输入错误后,退出程序

4.密码3次输入错误后,锁定用户名

Readme:

1.UserList.txt 是存放用户名和密码的文件,格式为:username: password,每行存放一条用户信息

2.LockList.txt 是存放已被锁定用户名的文件,默认为空

3.用户输入用户名,程序首先查询锁定名单 LockList.txt,如果用户名在里面,提示用户被锁定,并退出程序

4.如果用户名不在锁定名单里,程序将查询用户名单 UserList.txt ,如果用户名不在里面,将提示用户不存在,请重新输入,三次输入错误,将退出程序

5.如果用户名在用户名单里,将提示用户输入密码,密码正确,显示欢迎信息;3次输入错误,将锁定此用户名(写入锁定名单)

流程图:

Python实现登录接口的示例代码

代码:

# Joe Young


import os, sys, getpass

os.system('cls')      #调用os模块的system方法传入'cls'参数,清屏

count = 0          #用户名登录次数计数

while count < 3:

  username = input('username:')

  lock_file = open('LockList.txt', 'r+')   #打开LockList.txt文件,权限r+(打开用于读和写文件。文件指针置于该文件的开头)
  lock_list = lock_file.readlines()      #使用readlines()方法逐行读取LockList.txt,生成列表,并赋值给lock_list

  for lock_line in lock_list:
    if username == lock_line.strip('\n'):  #使用strip()方法去掉换行符,判断username是否在LockList.txt
      print('用户名 %s 已被锁定,请联系管理员...' %(username))
      sys.exit(1)             #sys模块的exit()方法表示退出

  with open('UserList.txt', 'r') as user_file:  #打开UserList.txt,权限只读
    user_list = user_file.readlines()      #逐行读取UserList.txt文件,赋值给user_list变量

  for user_line in user_list:
    (user, passwd) = user_line.strip('\n').split(': ') #获取user,passwd的值,用split(': ')实现分割字符串
    if user == username:                #判断用户名是否在UserList.txt文件内
      n = 0                      #密码输入次数计数
      while n < 3:                  #3次输入机会
        password = getpass.getpass('password:')   #使用getpass模块的getpass()方法获取用户输入的密码
        if password == passwd:           #判断密码是否匹配
          print('欢迎 %s 登陆系统!' %(username))
          sys.exit(0)
        else:
          if n != 2:               #n=2时,是最后一次机会,不需要提示还剩下0次机会
            print('密码错误,请重新输入,您还有 %d 次机会\n' %(2-n))
        n += 1                   #密码输入错误,次数+1
      else:
        lock_file.write(username + '\n')      #密码输入错误次数达到3次,把用户名写入LockList.txt文件,锁定用户名
        sys.exit('错误次数过多,用户名已被锁定...')   #程序退出,并输出提示
  else:                          #用户名不存在,执行else语句
    if count != 2:                   #count=2时,是最后一次输入用户名的机会,不用提示还剩下0次机会了
      print('用户名不存在,请重试,您还有 %d 次机会\n' %(2-count))
  count += 1                       #用户名输入错误,count+1

else:                      #用户名输入错误次数达到3次
  sys.exit('输入次数过多,程序已退出...')    #退出程序,并输出提示

lock_file.close()                #关闭LockList.txt文件

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python为tornado添加recaptcha验证码功能
Feb 26 Python
Python中针对函数处理的特殊方法
Mar 06 Python
python实现在sqlite动态创建表的方法
May 08 Python
Python+微信接口实现运维报警
Aug 27 Python
Python中GeoJson和bokeh-1的使用讲解
Jan 03 Python
python添加模块搜索路径和包的导入方法
Jan 19 Python
python定时按日期备份MySQL数据并压缩
Apr 19 Python
python 并发下载器实现方法示例
Nov 22 Python
Python阶乘求和的代码详解
Feb 14 Python
python函数调用,循环,列表复制实例
May 03 Python
python能做哪些生活有趣的事情
Sep 09 Python
python 网络编程要点总结
Jun 18 Python
centos6.4下python3.6.1安装教程
Jul 21 #Python
Python复数属性和方法运算操作示例
Jul 21 #Python
Python整型运算之布尔型、标准整型、长整型操作示例
Jul 21 #Python
Python双精度浮点数运算并分行显示操作示例
Jul 21 #Python
详解Golang 与python中的字符串反转
Jul 21 #Python
Python随机生成手机号、数字的方法详解
Jul 21 #Python
Python实现将16进制字符串转化为ascii字符的方法分析
Jul 21 #Python
You might like
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
php中var_export与var_dump的区别分析
2010/08/21 PHP
PHP中几种常见的超时处理全面总结
2012/09/11 PHP
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
2013/06/03 PHP
php支付宝接口用法分析
2015/01/04 PHP
php简单计算页面加载时间的方法
2015/06/19 PHP
PHP通过get方法获得form表单数据方法总结
2018/09/12 PHP
JavaScript面向对象编程
2008/03/02 Javascript
js交换排序 冒泡排序算法(Javascript版)
2014/10/04 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
2016/01/05 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
JavaScript html5 canvas绘制时钟效果(二)
2016/03/27 Javascript
AngularJS学习笔记之依赖注入详解
2016/05/16 Javascript
微信小程序 图片上传实例详解
2017/05/05 Javascript
详解vue+webpack+express中间件接口使用
2018/07/17 Javascript
JQuery实现ajax请求的示例和注意事项
2018/12/10 jQuery
详解小程序开发经验:多页面数据同步
2019/05/18 Javascript
vue+element模态框中新增模态框和删除功能
2019/06/11 Javascript
[02:27]2018DOTA2亚洲邀请赛赛前采访-OpTic
2018/04/03 DOTA
[45:52]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第二场 12.09
2020/12/12 DOTA
Python中IPYTHON入门实例
2015/05/11 Python
python实现读取excel写入mysql的小工具详解
2017/11/20 Python
python实现搜索文本文件内容脚本
2018/06/22 Python
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
JDK安装目录下有哪些内容
2014/08/25 面试题
数据库面试要点基本概念
2013/10/31 面试题
2014道德模范事迹材料
2014/02/16 职场文书
初中家长寄语
2014/04/02 职场文书
技术股份合作协议书
2014/10/05 职场文书
鼋头渚导游词
2015/02/05 职场文书
运动会闭幕式通讯稿
2015/07/18 职场文书
中职班主任培训心得体会
2016/01/07 职场文书
python文件目录操作之os模块
2021/05/08 Python
浅析MongoDB之安全认证
2021/06/26 MongoDB
Anaconda配置各版本Pytorch的实现
2021/08/07 Python
Go归并排序算法的实现方法
2022/04/06 Golang