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 相关文章推荐
pymongo实现控制mongodb中数字字段做加法的方法
Mar 26 Python
初步探究Python程序的执行原理
Apr 11 Python
Python读取图片属性信息的实现方法
Sep 11 Python
Python用imghdr模块识别图片格式实例解析
Jan 11 Python
Python mutiprocessing多线程池pool操作示例
Jan 30 Python
Python实现简单查找最长子串功能示例
Feb 26 Python
python实现弹窗祝福效果
Apr 07 Python
Python基础学习之类与实例基本用法与注意事项详解
Jun 17 Python
用python3 urllib破解有道翻译反爬虫机制详解
Aug 14 Python
用Python将Excel数据导入到SQL Server的例子
Aug 24 Python
python构建指数平滑预测模型示例
Nov 21 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
Feb 07 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
PHPMYADMIN 简明安装教程 推荐
2010/03/07 PHP
pdo中使用参数化查询sql
2011/08/11 PHP
php中$_GET与$_POST过滤sql注入的方法
2014/11/03 PHP
Zend Framework实现具有基本功能的留言本(附demo源码下载)
2016/03/22 PHP
php项目开发中用到的快速排序算法分析
2016/06/25 PHP
IE/FireFox具备兼容性的拖动代码
2007/08/13 Javascript
javascript的onchange事件与jQuery的change()方法比较
2009/09/28 Javascript
jquery 的 $(&quot;#id&quot;).html() 无内容的解决方法
2010/06/07 Javascript
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
2016/05/21 Javascript
input 禁止输入特殊字符的四种实现方式
2016/08/24 Javascript
javascript实现用户点击数量统计
2016/12/25 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
基于rollup的组件库打包体积优化小结
2018/06/18 Javascript
javascript删除数组元素的七个方法示例
2019/09/09 Javascript
JS+css3实现幻灯片轮播图
2020/08/14 Javascript
Vue开发中常见的套路和技巧总结
2020/11/24 Vue.js
小程序实现列表倒计时功能
2021/01/29 Javascript
Python入门篇之列表和元组
2014/10/17 Python
Python字符串切片操作知识详解
2016/03/28 Python
Python基于二分查找实现求整数平方根的方法
2016/05/12 Python
python中函数默认值使用注意点详解
2016/06/01 Python
pyqt5的QComboBox 使用模板的具体方法
2018/09/06 Python
Python 实现的 Google 批量翻译功能
2019/08/26 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
2019/10/24 Python
瑞典快乐袜子:Happy Socks
2018/02/16 全球购物
Bibloo荷兰:女士、男士和儿童的服装、鞋子和配饰
2019/02/25 全球购物
美国椅子和沙发制造商:La-Z-Boy
2020/10/25 全球购物
升职自荐书范文
2013/11/28 职场文书
管理心得体会
2013/12/28 职场文书
市场部规章制度
2014/01/24 职场文书
护理专业毕业生自荐书
2014/05/24 职场文书
工作求职信
2014/07/04 职场文书
项目合作意向书
2015/05/08 职场文书
五年级作文之劳动作文
2019/11/12 职场文书
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技