登录程序
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. jquery的使用 关于 option ,append,attr,val()等的使用

    //遍历option和添加.移除option function changeShipMethod(shipping){ var len = $("select[@name=ISHIPTYPE ...

  2. php中的$_GET怎样获取带有井号“#”的參数

    <?php echo $_GET['key']; ?> 当url为http://test.com/c.php?key=999时,正常输出:999 当url为http://test.com/ ...

  3. C#如何将Build成功的程序集Copy到上一层目录

    C#Build成功后,会把Build好的程序集放到bin\Debug的目录下,如何将目录放到特定目录 例如放到bin目录下,copy "$(TargetFileName)" &qu ...

  4. asp.net、mvc、ajax、js、jquery、sql、EF、linq、netadvantage第三方控件知识点笔记

    很简单,如下: 父页面:(弹出提示框) function newwindow(obj) { var rtn = window.showModalDialog('NewPage.htm','','sta ...

  5. 松瀚SN8P2711 2722 ADC初始化程序及应用--汇编源码

    /* 松瀚 SN8P2711 2722 ADC初始化程序 及应用实例 */ INIT_ADC: MOV A, #0XB2 // 启动ADC电路 使能AIN通道 B0MOV ADM, A MOV A,# ...

  6. mvc项目如何在IIS7.5

    mvc项目如何在IIS7.5上发布的 1.在vs中打开你要发布的项目,右键属性找到发布 2.弹出发布web对话框,选择<新建配置文件...> 在弹出的对话框中输入一个配置文件名称,后确定 ...

  7. 【IOS开发】UItextfield输入电话号码,自动调整格式

    UItextfield中实现输入电话号码,自动按位置在加“—”效果.效果图如下. 核心代码: -(BOOL)textField:(UITextField *)textField shouldChang ...

  8. vijos1009:扩展欧几里得算法

    1009:数论 扩展欧几里得算法 其实自己对扩展欧几里得算法一直很不熟悉...应该是因为之前不太理解的缘故吧这次再次思考,回看了某位大神的推导以及某位大神的模板应该算是有所领悟了 首先根据题意:L1= ...

  9. C# list distinct操作

    使用代理实现对C# list distinct操作   范型在c#编程中经常使用,而经常用list 去存放实体集,因此会设计到对list的各种操作,比较常见的有对list进行排序,查找,比较,去重复. ...

  10. Leetcode::JumpGame

    Description: Given an array of non-negative integers, you are initially positioned at the first inde ...