day1作业--登录入口
作业概述:
编写一个登录入口,实现如下功能:
(1)输入用户名和密码
(2)认证成功后显示欢迎信息
(3)输错三次后锁定
流程图:

readme:
1、程序配置文件: 黑名单文件blacklist.txt(可以存在,可以不存在) 白名单文件whitelist.txt存在,内容如下: zhangsan,1234 wang,1234 ding,1234 2、输入密码的时候不显示 代码:
#coding=utf-8
import os
import getpass
BlackListFileName = 'E:\\python3.5_study\\s13\\day1\\login\\blacklist.txt' #存放黑名单
WhiteListFileName = 'E:\\python3.5_study\\s13\\day1\\login\\whitelist.txt' #存放白名单
ErrorNum = 0 #记录错误次数
BlackFlag = False #遍历黑名单的标志位
WhiteFlag = False #遍历白名单的标志位
WhiteNameList = [] #存放白名单中所有的用户名字
print ('''
*********************
登录入口
*********************
''')
#判断黑名单文件是否存在
FileExistBool = os.path.exists(BlackListFileName)
if FileExistBool == False:
BlackF=open(BlackListFileName,'w') #创建存放黑名单的文件
BlackF.close()
UserName = input("请输入用户名:")
PassWord = getpass.getpass("请输入密码:")
#判断用户是否在黑名单中
BlackF=open(BlackListFileName,'r') #读取方式打开黑名单文件
BlackNameContent = BlackF.readlines() #读取黑名单文件中所有内容,放入list中
for i in range(len(BlackNameContent)):
BlackName = BlackNameContent[i].strip().split(',')[0]
if UserName == BlackName:
print ('%s用户被锁定' %(UserName))
BlackF.close()
BlackFlag = True
break
if BlackFlag == False: #BlackFlag==False说明UserName不在黑名单中
#判断用户名和密码是否正确
while 1:
WhiteF=open(WhiteListFileName,'r') #读取方式打开白名单文件
WhiteNameContent = WhiteF.readlines() #读取白名单文件中所有内容,放入list中
for i in range(len(WhiteNameContent)):
Name = WhiteNameContent[i].strip().split(',')[0]
NamePassWord = WhiteNameContent[i].strip().split(',')[1]
WhiteNameList.append(Name)
if UserName == Name and PassWord == NamePassWord:
print ('恭喜,登录成功')
WhiteFlag = True
break
WhiteF.close()
if UserName not in WhiteNameList:
print ('%s用户不存在' %UserName)
break
if WhiteFlag == True: #登录成功,跳出while循环
break
else:
ErrorNum += 1 #用户名和密码错误的话错误次数+1
print ('用户名或密码输入错误,第%d次' %ErrorNum)
print ('ErrorNum:',ErrorNum)
if ErrorNum < 3:
UserName = input("请输入用户名:")
PassWord = getpass.getpass("请输入密码:")
else:
print ('错误次数过多,用户被锁定')
BlackF=open(BlackListFileName,'a+') #追加写黑名单文件
BlackName = UserName+'\n'
BlackF.write(BlackName)
BlackF.close()
break
day1作业--登录入口的更多相关文章
- day1作业--登录接口
作业:编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 知识: 1.循环的使用: 2.continue,break在循环中中断的作用: 3.文件的写入,读取: 4.各基础知 ...
- Day1作业---登录接口及多级菜单
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Ma Qing data = { "山东" :{ "济南&qu ...
- day1作业登录接口总结
作业一:编写登陆接口 1.输入用户名和密码 2.认证成功后显示欢迎信息 3.输错三次后锁定 上面作业,用了几种思路来解决问题:但是本质上其实都是一样的:核心都是对文件的操作,文件的增删改查:并且这些操 ...
- Day1作业要求
Day1作业 作业需求 博客 模拟登录 三级菜单 博客地址 杨振伟Day1博客地址 模拟登录 1.程序说明 实现功能如下 用户输入密码,密码验证后登录成功 用户登录成功后提示登录信息 用户输入3次错误 ...
- 使用session页面控制登录入口及购物车效果的实现
由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容.实际上在服务器端的 Session 文件,PHP 自动修改 Session 文件的权限,只 ...
- 【thinkphp5】安全建议:隐藏后台登录入口地址
我们都知道后台 www.test.com/admin 是我们最常用的登录入口,方便的同时也留下了隐患,如果你刚好使用了 admin/ 这种账号密码的方式,会导致我们的后台完全暴露在外. 因此我们建 ...
- Python3.5 Day1作业:实现用户密码登录,输错三次锁定。
作业需求: 1.输入用户名密码 2.认证成功后显示欢迎信息 3.输错三次后锁定 实现思路: 1.判断用户是否在黑名单,如果在黑名单提示账号锁定. 2.判断用户是否存在,如果不存在提示账号不存在. 3. ...
- day1作业:登录接口
作业一:编写登陆接口 1.输入用户名和密码 2.认证成功后显示欢迎信息 3.输错三次后锁定 思路: (1)用户输入用户名: (2)去锁定文件中验证用户名是否锁定: (3)去当前用户验证用户是否存在: ...
- day1作业:编写登录窗口一个文件实现
思路: 1.参考模型,这个作业我参考了linux的登录认证流程以及结合网上银行支付宝等锁定规则: 1)认证流程参考的是Linux的登录:当你输入完用户名密码后再验证用户名是否存在用户是否被锁定,然后在 ...
随机推荐
- jQuery的常见操作
1. 选择符: a) a > b 作为a子元素的b匹配的元素 b) a + b 作为后面直接同辈元素的b匹配的元素 c) a ~ b 作为后面 ...
- OD20
查壳 发现没有壳 那就载入OD 在命令中在API函数下下个断点 然后程序跑起来 , 点CHECK 断下来了 在动态链接库断下来了 我们alt+F9 回到用户界 ...
- 关于npm
转载自AlloyTeam:http://www.alloyteam.com/2016/03/master-npm/ 这是我学npm觉得最好的一篇文章啦-大家一起学起来吧 npm本来是Node.js的包 ...
- amazon oa2 - insert a value into a cycled linked list
遍历,一共有三种情况, 1. pre <= x <= current 2. 遍历到了head时,x>tail 或者 x<=head (不会等于tail) 3. 遍历回aNode ...
- 第一章Android系统移植与驱动开发概述--读书笔记
以前,初步学习过嵌入式Linux驱动开发的基础课程,对于驱动开发可以说是有了一点点微末的基础吧.首先我们要对Android嵌入式系统有一个初步的认识,Android系统发展到今天已经具备了完善的架构. ...
- WinForm实现对权限菜单进行管理
一.界面: 二.数据库访问类: public class DataClass { private readonly string connect = ConfigurationManager.AppS ...
- iOS 线性滚动
在这里,给大家带来简单的滚动实现,首先看一下实现效果. 通过观察不难发现,有很多地方并不是那么容易想出来的,对于篇随笔,感兴趣可以查查相关资料,我就不尽行过多说明,(主要是开考文字,不好说明
- 手动搭建Vue环境
Vue+webpack+babel环境搭建 github地址 https://github.com/haoyongliang/webpack-babel-Vue 1.首先要了解Vue项目结构 简单的目 ...
- 修复Windows XP右键没有新建菜单问题
桌边上,点击鼠标右键,也没有排列图标菜单 开始-运行-输入:cmd输入命令:reg add "HKEY_CLASSES_ROOT\Directory\Background\shellex\C ...
- WinForm DataGridView根据选中的行多删
private void btndel_Click(object sender, EventArgs e) { int count = 0; ...