登录程序
1.输入用户名密码
2.认证成功后显示欢迎信息
3.输错三次后锁定


#!/usr/bin/env python
#_*_coding:utf-8_*_
#by anthor gushiren 2017-01-10
#blog:http://www.cnblogs.com/gushiren/
import sys
import getpass
import os
info = {'gushiren':'','zhangsan':'','zhaosi':''}
count = 3
f = open('locked.txt','r')
lock_file = f.readlines()
f.close()
while True:
username = raw_input("\033[32m请输入用户名:\033[0m").strip()
password = getpass.getpass("\033[32m请输入密码:\033[0m").strip()
for i in open('locked.txt').readlines():
line=i.strip("\n")
lock_file.append(line)
if username in lock_file:
print("\033[41m用户%s已锁定,请联系系统管理员!\033[0m") % username
sys.exit()
if username in info.keys():
user_password = info['%s' %username]
if password == user_password:
print "\033[36m登录成功!欢迎%s登录系统!\033[0m" % username
break
else:
count -= 1
if count == 0:
f = open('locked.txt','a+')
f.writelines('%s'%username)
f.write('\n')
f.close()
print "\033[31m密码错误次数达到三次,该账户已锁定!\033[0m"
sys.exit()
else:
print "\033[33m密码错误,还剩%s次机会,超出次数账号将被锁定!\033[0m" % count
else:
print "\033[31m用户%s不存在,请重新输入:\033[0m"%username
continue

1.[输入正确的用户名和密码]
[root@shell_python ~]# python welcome.py
请输入用户名:gushiren
请输入密码:
登录成功!欢迎zhangxiaoyu登录系统!
######当输入正确的用户名和密码打印登录成功和欢迎信息!


2.[输入错误的用户名]
[root@shell_python ~]# python welcome.py
请输入用户名:nouser
请输入密码:
用户nouser不存在,请重新输入:
请输入用户名:
#######当输入错误的用户名和密码(正确或者不正确或为空)提示用户不存在请重新输入!


3.[输入正确的用户名和错误的密码]
[root@shell_python ~]# python welcome.py
请输入用户名:gushiren
请输入密码:
密码错误,还剩2次机会,超出次数账号将被锁定!
请输入用户名:gushiren
请输入密码:
密码错误,还剩1次机会,超出次数账号将被锁定!
请输入用户名:gushiren
请输入密码:
密码错误次数达到三次,该用户已被锁定!请联系系统管理员解锁!
#######当输入正确的用户名和错误的密码提示密码错误,并提示输入密码错误三次此账户将被锁定!


4.[输入被锁定的用户]
[root@shell_python ~]# python welcome.py
请输入用户名:gushiren
请输入密码:
用户gushiren已被锁定,请联系系统管理员解锁!
#######当输入已经被锁定的用户时,提示该用户已被锁定,请联系系统管理员解锁!


5.[查看被锁定的用户]
[root@shell_python ~]# cat locked.txt
gushiren
#######凡是加入到此锁定文件的用户均不能登录系统!

 

最新文章

  1. Mybatis错误(一)org.apache.ibatis.exceptions.PersistenceException
  2. jsp页面中创建方法
  3. Nginx作为负载均衡服务器(Windows环境)
  4. java中的BigDecimal和String的相互转换
  5. Java编程思想(一):大杂烩
  6. thinkphp分页效果的制作,按查询条件分页正确做法
  7. Play Framework常用标签list,set,如何遍历list、map类型数据
  8. Acronis Server备份Linux系统
  9. FFmpeg介绍及参数详细说明
  10. [hihocoder 1033]交错和 数位dp/记忆化搜索
  11. 前端开发必备的Sublime 3插件
  12. Basic Data Structure
  13. 通过银行卡号识别归属银行,php方式
  14. 【Java】 剑指offer(30) 包含min函数的栈
  15. IDEA 设置 TOMCAT 虚拟路径
  16. 在HTML中用循环语句
  17. Team抢救最后一下
  18. 小程序中的block
  19. javascript继承之原型式继承(四)
  20. Spring IOC(DI)

热门文章

  1. 【luogu P1262 间谍网络】 题解
  2. Tomcat 启动速度优化
  3. 封装全局icon组件 svg (仿造element-ui源码)
  4. Navicat Premium 连接Oracle 数据库之配置
  5. Hands-On Modeler (建模人员参与程序开发)
  6. 常用的标准SQL 语句
  7. Easyui多个下拉框联动效果
  8. 【TOJ 3369】CD(二分)
  9. solr6.6教程-core的添加(二)
  10. NFS网络文件系统详解