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连接池实现示例程序
Nov 26 Python
实例讲解Python编程中@property装饰器的用法
Jun 20 Python
Python 详解基本语法_函数_返回值
Jan 22 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
Jul 06 Python
python和shell监控linux服务器的详细代码
Jun 22 Python
Python面向对象之反射/自省机制实例分析
Aug 24 Python
flask框架json数据的拿取和返回操作示例
Nov 28 Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
Mar 06 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
Jun 27 Python
python interpolate插值实例
Jul 06 Python
有关pycharm登录github时有的时候会报错connection reset的问题
Sep 15 Python
python cv2图像质量压缩的算法示例
Jun 04 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
php通用防注入程序 推荐
2011/02/26 PHP
PHP的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
php fsockopen中多线程问题的解决办法[翻译]
2011/11/09 PHP
php使用smtp发送支持附件的邮件示例
2014/04/13 PHP
日期 时间js控件
2009/05/07 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
2012/12/09 Javascript
javascript-简单的日历实现及Date对象语法介绍(附图)
2013/05/30 Javascript
jQuery 追加元素的方法如append、prepend、before
2014/01/16 Javascript
AngularJS入门教程(一):静态模板
2014/12/06 Javascript
使用纯javascript实现放大镜效果
2015/03/18 Javascript
js实现精美的银灰色竖排折叠菜单
2015/05/16 Javascript
javascript中arguments,callee,caller详解
2016/03/16 Javascript
JS实现输入框提示文字点击时消失效果
2016/07/19 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
判断jQuery是否加载完成,没完成继续判断的解决方法
2017/12/06 jQuery
JavaScript解决浮点数计算不准确问题的方法分析
2018/07/09 Javascript
vue-cli3 从搭建到优化的详细步骤
2019/01/20 Javascript
微信小程序实现bindtap等事件传参
2019/04/08 Javascript
JavaScript中AOP的实现与应用
2019/05/06 Javascript
Python 字典(Dictionary)操作详解
2014/03/11 Python
Python通过递归遍历出集合中所有元素的方法
2015/02/25 Python
Python简明入门教程
2015/08/04 Python
Python 读取用户指令和格式化打印实现解析
2019/09/02 Python
opencv3/C++实现视频背景去除建模(BSM)
2019/12/11 Python
Python time库基本使用方法分析
2019/12/13 Python
Python3 main函数使用sys.argv传入多个参数的实现
2019/12/25 Python
Python运行DLL文件的方法
2020/01/17 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
Django配置跨域并开发测试接口
2020/11/04 Python
python脚本定时发送邮件
2020/12/22 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
2021/03/03 Python
美国百货齐全的精品网站,提供美式风格的产品:Overstock.com
2016/07/22 全球购物
科沃斯机器人官网商城:Ecovacs
2016/08/29 全球购物
商铺消防安全责任书
2014/07/29 职场文书
土建技术员岗位职责
2015/04/11 职场文书
golang 如何用反射reflect操作结构体
2021/04/28 Golang