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在校内发人人网状态(人人网看状态)
Feb 19 Python
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
Sep 18 Python
用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例
Dec 14 Python
pandas数据分组和聚合操作方法
Apr 11 Python
python 字典修改键(key)的几种方法
Aug 10 Python
python使用正则筛选信用卡
Jan 27 Python
pandas DataFrame 删除重复的行的实现方法
Jan 29 Python
使用python动态生成波形曲线的实现
Dec 04 Python
wxPython修改文本框颜色过程解析
Feb 14 Python
python实现字符串和数字拼接
Mar 02 Python
哪些是python中web开发框架
Jun 17 Python
Python库安装速度过慢解决方案
Jul 14 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下通过curl抓取yahoo boss 搜索结果的实现代码
2011/06/10 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
JScript内置对象Array中元素的删除方法
2007/03/08 Javascript
豆瓣网的jquery代码实例
2008/06/15 Javascript
JavaScript 乱码问题
2009/08/06 Javascript
javascript 关于# 和 void的区别分析
2009/10/26 Javascript
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
利用JQuery的load函数动态加载其它页面的内容的实现代码
2010/12/14 Javascript
鼠标放在图片上显示大图的JS代码
2013/03/26 Javascript
jquery设置控件位置的方法
2013/08/21 Javascript
js闭包的用途详解
2014/11/09 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
2015/04/13 Javascript
jquery代码实现多选、不同分享功能
2015/07/31 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
JS限制条件补全问题实例分析
2016/12/16 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
js实现拖拽功能
2017/03/01 Javascript
echart简介_动力节点Java学院整理
2017/08/11 Javascript
Vue数据监听方法watch的使用
2018/03/28 Javascript
Vue.js中对css的操作(修改)具体方式详解
2018/10/30 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
js刷新页面location.reload()用法详解
2019/12/09 Javascript
ant design实现圈选功能
2019/12/17 Javascript
es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析
2020/02/15 Javascript
示例详解Python3 or Python2 两者之间的差异
2018/08/23 Python
django框架基于模板 生成 excel(xls) 文件操作示例
2019/06/19 Python
python爬虫之爬取百度音乐的实现方法
2019/08/24 Python
通过实例了解Python异常处理机制底层实现
2020/07/23 Python
HTML5中外部浏览器唤起微信分享功能的代码
2020/09/15 HTML / CSS
十一个高级MySql面试题
2014/10/06 面试题
《千年梦圆在今朝》教学反思
2014/02/24 职场文书
户籍证明书标准模板
2014/09/10 职场文书
学生顶撞老师的检讨书
2014/09/17 职场文书
志愿者服务活动总结报告
2015/05/06 职场文书
测量JavaScript函数的性能各种方式对比
2021/04/27 Javascript