原文数据:

user_db.txt

root:root_admin

admin:admin_root

lock_db.txt

admin

具体要求:

1.输入用户名密码

2.认证成功后显示欢迎消息

3.输错三次后锁定账户

文件结构:

代码流程:

代码实现:

main.py

# -*- coding: utf-8 -*-

"""

#

# Authors: limanman

# OsChina: http://my.oschina.net/pydevops/

# Purpose:

#

"""

import sys

import linecache

def main():

"""Main function."""

user_db = 'user_db.txt'

lock_db = 'lock_db.txt'

retry_count = 0

# 判断三次输入的账户名是不是同一个用户,如果是并且不存在锁定文件中则锁定

lock_db_set = set()

while retry_count

login_name = raw_input('please input login_user: ').strip()

if len(login_name) == 0:

continue

lock_db_cache = linecache.getlines(lock_db)

if ''.join([login_name, '\n']) in lock_db_cache:

print 'Found Errors: your accound is limited login, try again later!'

break

lock_db_set.add(login_name)

user_db_cache = linecache.getlines(user_db)

login_pass = raw_input('please input login_pass: ').strip()

if len(login_pass) == 0:

continue

if ''.join([login_name, ':', login_pass, '\n']) in user_db_cache:

print 'Found Notice: welcome to login!'

break

else:

print 'Found Errors: user name or pass wrong!'

retry_count += 1

# 防止程序运行中文件被篡改

linecache.updatecache(user_db)

linecache.updatecache(lock_db)

else:

# 判断三次输入的是否是同一个用户名

if len(lock_db_set) == 1:

print 'Found Notice: your accound is locked, contract admin unlock!'

# 加入缓存,此时不需加\n换行,下次读取会自动添加

lock_db_cache.append(login_name)

with file(lock_db, 'w+b') as whandle:

whandle.writelines(lock_db_cache)

if __name__ == '__main__':

main()

python编写登录接口_每日一题.PYTHON编写简单登录接口?相关推荐

  1. python 声明变量类型_每日一课 | Python 检查变量的类型

    在Python中,我们可以使用type()来检查变量的类型. num = "3.141592653589793238"print(type(num)) pi = float(num ...

  2. 考研复试题 计算机接口原理,微机原理及接口技术考研模拟题一-微机原理与接口技术.DOC...

    微机原理及接口技术考研模拟题一-微机原理与接口技术 附录c < 微机原理及接口技术 >考研模拟题(一) 一.判断题:(正确题在括号内画√,错误画X.每小题 1分,共 10 分) 1.Pen ...

  3. python for everybody作业和测试答案_【计算题】编写函数,模拟 Python 内置函数 reversed() 。...

    [计算题]编写函数,模拟 Python 内置函数 reversed() . 更多相关问题 In California, there lives a pretty girl called Donna G ...

  4. ACWING蓝桥杯每日一题python

    ACWing蓝桥杯每日一题 一直没时间去总结算法,终于有空可以总结一下刷的acwing了,因为没时间所以最近只刷了ACWING的蓝桥杯每日一题...真是该死 1.截断数组 首先我们要知道,如果sum( ...

  5. 力扣牛客每日刷题(Python解法持续更新)

    力扣牛客每日刷题(持续更新) 初试结束第15天, 之前简单的处理了部分毕设方面的任务, 对接下来的学习做了个简单的规划 决定每天开始刷几道力扣题提高一下算法的理解,不能让之前学的数据结构都忘记了 每道 ...

  6. 股票自动交易python下单接口_股票自动交易Python下单接口

    股票自动交易软件助手的 Order.dll 自动下单接口不仅仅能在大智慧,通达信,飞狐等软件公式里调用,也可以在windows程序里直接调用,支持 Python, C/C++/C#接口调用.有编程能力 ...

  7. 防抖 节流_每日一题手写函数防抖与节流

    关注"前端学苑" ,坚持每天进步一点点 「~函数防抖与节流 ~」 每日一题,希望让爱学习.思考的前端技术伙伴在一起学习.复盘.成长. 基础知识要夯实,原理源码要深入,深度广度要扩展 ...

  8. 和与余数的和同余理解_每日一题 | 第38期:数量关系之余数特性

    从今天起"每日一题"栏目就正式更新啦~ 由福瑞和教育的主讲老师 每天给大家带来公考不同考试版块的干货资料! 旨在潜移默化中给大家培养公考解题思维,提高做题速度! 大家遇到不明白的题 ...

  9. resize函数_每日一题手写函数防抖与节流

    关注"前端学苑" ,坚持每天进步一点点 「~函数防抖与节流 ~」 每日一题,希望让爱学习.思考的前端技术伙伴在一起学习.复盘.成长. 基础知识要夯实,原理源码要深入,深度广度要扩展 ...

最新文章

  1. CNN的一些可视化方法!
  2. 解决idea控制台打印乱码问题
  3. linux svn同步到本地目录,LINUX中SVN服务的搭建与实现SVN 自动同步到web目录,SVN自动启动...
  4. linux git diff patch,拿到git patch要怎麼用一般patch指令merge?
  5. 限量!“Java 成长笔记” Spring Boot/Sentinel/Nacos 高并发
  6. 升级Win10后Markdown Pad2启动报错‘Awesomium.Windows.Controls.WebControl’解决方法
  7. idea设置java环境变量_idea的环境变量怎样设置
  8. wireshark不同颜色报文含义(报文颜色)
  9. 手把手教你反编译小程序
  10. ss服务器多端口配置及密码设置^_^
  11. 数字经济的发展需要包括区块链在内的八大技术的支撑360云储
  12. 学科实践活动感悟50字_包饺子实践活动感悟
  13. Linux 上配置 SQL Server Always On Availability Group
  14. 实现Windows文件复制到vm虚拟机
  15. 计算机高中期末总结作文,高一期末总结作文(通用3篇)
  16. 「技术趋势」软件开发人员应该了解的2021年技术趋势
  17. 九九乘法表 -- 2015/9/24
  18. [附源码]Python计算机毕业设计房屋租赁管理系统
  19. c语言程序化交易:如何计算K线指标
  20. 人人都能用的10条网站易用性技巧

热门文章

  1. Zookeeper的Leader选举
  2. 使用大数据技术需要注意哪些问题
  3. 扩展JavaScript数组(Array)添加删除元素方法
  4. 银医 服务器虚拟化,长宁时报数字报刊平台-技术创新 需求驱动 信息化助力医院发展...
  5. oracle 9.2 imp 表空间,如何imp到不同于原表空间的表空间?
  6. java 100个定时任务_Java定时任务解决方案
  7. 日志打印工具类LogUtils
  8. LoadRunner 11压测时碰到错误Error: missing newline in *:\*****\*.dat
  9. 多继承 , 组合 , 菱形继承 , 接口 , 抽象 , 鸭子类型
  10. Oracle报错:“ORA-02292:违反完整约束条件(XXX.FKXXX)- 已找到子记录