登录程序
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
#######凡是加入到此锁定文件的用户均不能登录系统!

 

python3.5学习之路_day1_login的更多相关文章

  1. Python3学习之路~0 目录

    目录 Python3学习之路~2.1 列表.元组操作 Python3学习之路~2.2 简单的购物车程序 Python3学习之路~2.3 字符串操作 Python3学习之路~2.4 字典操作 Pytho ...

  2. python学习之路-day2-pyth基础2

    一.        模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,第三方库存放位置:site-packages sys模块简介 导入模块 import sys 3 sys模 ...

  3. Python学习之路-Day2-Python基础3

    Python学习之路第三天 学习内容: 1.文件操作 2.字符转编码操作 3.函数介绍 4.递归 5.函数式编程 1.文件操作 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个 ...

  4. Python学习之路-Day2-Python基础2

    Python学习之路第二天 学习内容: 1.模块初识 2.pyc是什么 3.python数据类型 4.数据运算 5.bytes/str之别 6.列表 7.元组 8.字典 9.字符串常用操作 1.模块初 ...

  5. Python学习之路【第一篇】-Python简介和基础入门

    1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...

  6. jQuery学习之路(1)-选择器

    ▓▓▓▓▓▓ 大致介绍 终于开始了我的jQuery学习之路!感觉不能再拖了,要边学习原生JavaScript边学习jQuery jQuery是什么? jQuery是一个快速.简洁的JavaScript ...

  7. Android开发学习之路-RecyclerView滑动删除和拖动排序

    Android开发学习之路-RecyclerView使用初探 Android开发学习之路-RecyclerView的Item自定义动画及DefaultItemAnimator源码分析 Android开 ...

  8. RPC远程过程调用学习之路(一):用最原始代码还原PRC框架

    RPC: Remote Procedure Call 远程过程调用,即业务的具体实现不是在自己系统中,需要从其他系统中进行调用实现,所以在系统间进行数据交互时经常使用. rpc的实现方式有很多,可以通 ...

  9. webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口

    webService学习之路一:讲解了通过传统方式怎么发布及调用webservice webService学习之路二:讲解了SpringMVC和CXF的集成及快速发布webservice 本篇文章将讲 ...

随机推荐

  1. Android 简介:Android SDK 和开发框架简介

    理解Android软件栈: 库: C/C++库(libc,SSL) Android 运行时可以让Android手机从本质上与一个移动Linux实现区分开来.Dalvik并不是Java虚拟机,是一个基于 ...

  2. NodeJS热部署工具 — supervisor

    NodeJS热部署工具 — supervisor 大家都在开发nodejs应用时遇到过这样的情况,修改nodejs应用中的程序文件后必须重启nodejs才能重新加载应用代码.这是因为nodejs加载过 ...

  3. 关于覆盖Object中的hashCode, equals和toString

    最近在看<Effective Java>,里面看到了关于重载hashCode.equals和toString方法的篇章,顿时觉得视野开拓了不少,而且正结合自己工作.项目中的实例,觉得有必要 ...

  4. TDD中的单元测试

    TDD中的单元测试写多少才够?   测试驱动开发(TDD)已经是耳熟能详的名词,既然是测试驱动,那么测试用例代码就要写在开发代码的前面.但是如何写测试用例?写多少测试用例才够?我想大家在实际的操作过程 ...

  5. Fiddler工具

    Fiddler初探 我们知道监视Http和Https请求的工具有多种,例如:HttpWatch,FireBug等.但是今天接触到一种新的工具Fiddler.Fiddler能记录所有客户端和服务器的ht ...

  6. smartcn与IKanalyzer

    开源中文分词框架分词效果对比smartcn与IKanalyzer 项目背景: 某银行呼叫中心工单数据挖掘和分析项目,旨在利用文本计算实现热点聚焦和舆情分析. 一.引言: 中文分词一直是自然语言处理的一 ...

  7. java web项目基础

      listener,filter,servlet的初始化顺序 web.xml中可以配置如下信息: context-param,listener,filter,servlet. 他们的加载顺序和在we ...

  8. Stimulsoft.Report.web viewer控件添加按钮

    当你购买了带源码的时候,你可以对源码进行修改以达到自己想要的效果,比较这里讲到的,向viewer控件工具栏添加按钮. 通过源码目录可以看出我们需要修改的有两部分代码 红色方块圈中的部分,[StiWeb ...

  9. Google C++测试框架系列:入门

    Google C++测试框架系列:入门 原始链接:V1_6_Primer 注 GTest或者Google Test: Google的C++测试框架. Test Fixtures: 这个词实在找不到对应 ...

  10. PHP GD 库 缩略图 添加水印

    class cls_image { var $error_no = 0; var $error_msg = ''; //var $images_dir = IMAGE_DIR; //var $data ...