python3学习之路_day1
登录程序
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学习之路_day1的更多相关文章
- Python3学习之路~0 目录
目录 Python3学习之路~2.1 列表.元组操作 Python3学习之路~2.2 简单的购物车程序 Python3学习之路~2.3 字符串操作 Python3学习之路~2.4 字典操作 Pytho ...
- Python3学习之路~8.5 SocketServer实现多并发
前面几节我们写的socket都只能实现服务端与一个客户端通信,并不能实现服务端与多客户端同时通信.接下来我们就来学习一下如何实现服务端同时与多个客户端通信,即并发. Socket Server soc ...
- Python3学习之路~9.4 队列、生产者消费者模型
一 队列queue 当必须在多个线程之间安全地交换信息时,队列在线程编程中特别有用. 队列的作用:1.解耦,使程序直接实现松耦合 2.提高处理效率 列表与队列都是有顺序的,但是他们之间有一个很大的区别 ...
- Python3学习之路~9.1 paramiko模块:实现ssh执行命令以及传输文件
我们一般使用linux的时候,都是在Windows上安装一个ssh客户端连接上去.那么从一台linux如何连接到另一条linux呢?使用ssh命令即可,因为每台linux机器自己都有一个ssh客户端. ...
- Python3学习之路~8.6 开发一个支持多用户在线的FTP程序-代码实现
作业: 开发一个支持多用户在线的FTP程序 要求: 用户加密认证 允许同时多用户登录 每个用户有自己的家目录 ,且只能访问自己的家目录 对用户进行磁盘配额,每个用户的可用空间不同 允许用户在ftp s ...
- Python3学习之路~8.4 利用socket实现文件传送+MD5校验
利用socket实现文件传送,大约分为如下几步: 1.读取文件名2.检测文件是否存在3.打开文件(别忘了最后关闭文件)4.检测文件大小5.发送文件大小给客户端6.等客户端确认7.开始边读边发数据8.m ...
- Python3学习之路~7.5 异常处理
1.异常基础 在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!!! try: pass except Excepti ...
- Python3学习之路~5.12 hashlib & hmac & md5 & sha模块
hashlib模块用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 import md5 h ...
- Python3学习之路~5.7 Json & pickle 模块
用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换 pickle,用于python特有的类型 和 python的数据类型间进行转换 Json模块提供了四个功能:dumps. ...
随机推荐
- git快捷命令缩写
# Query/use custom command for `git`. zstyle -s ":vcs_info:git:*:-all-" "command" ...
- 使用RMAN对数据文件进行恢复
(1)备份数据库 在使用RMAN进行数据库恢复之前,先用RMAN进行全库备份 [oracle@redhat6 ~]$ rman target / Recovery Manager: Release : ...
- oracle 监听服务配置
最近在red hat 6.6虚拟机上安装了Oracle 11gR2数据库,安装完毕,使用没有问题,通过主机也可以访问到虚拟机上的数据库.然而,在重新启动虚拟机后,主机无法访问到数据库,提示错误: PS ...
- iOS Xcode 小技巧,提升理解查询能力,Command + 点击鼠标右键 Jump to Definition等
前言: 介绍下Xcode 小技巧,以及一下快捷键,让你调试程序更加出类拔萃,安排! Command + 点击鼠标右键 Jump to Definition,可能你平时也在用,但是你明白全部的用法吗,试 ...
- NEC 工程师规范
工程师规范 - 开发准备 了解产品和设计 参加需求.交互.视觉会议,了解产品设计和项目成员. 了解产品面向的设备和平台. 了解产品对兼容性的要求以及是否采用响应式设计等. 了解产品要使用的技术(WEB ...
- Vue.js中 computed 和 methods 的区别
官方文档中已经有对其的解释了,在这里把我的理解记录一下Vue中的methods.watch.computed computed 的使用场景 HTML模板中的复杂逻辑表达式,为了防止逻辑过重导致不易维护 ...
- 【ospf-链路验证】
根据项目需求搭建好拓扑图 配置RT1的环回口IP和G0/0/0IP地址 开启RT1接口ospf认证,配置接口密码为H3C 配置RT1的ospf区域 同理 开启RT2接口ospf认证,配置接口密码为g0 ...
- node.js中http通讯模块
创建一个服务器 首先建立一个js文件,命名为app.js写入内容: const http=require('http'); http.createServer((request,response)=& ...
- ubuntu如何设置Python的版本
Ubuntu默认已经安装了Python的版本了,不过是Python2的版本. 我们安装好Python3想把他切换为系统默认的版本. sudo update-alternatives --config ...
- [转]App离线本地存储方案
App离线本地存储方案 原文地址:http://ask.dcloud.net.cn/article/166 HTML5+的离线本地存储有如下多种方案:HTML5标准方案:cookie.localsto ...