标签:
作业概述:
编写一个登录入口,实现如下功能:
(1)输入用户名和密码
(2)认证成功后显示欢迎信息
(3)输错三次后锁定
流程图:
readme:
1、程序配置文件:
黑名单文件blacklist.txt(可以存在,可以不存在)
白名单文件whitelist.txt存在,内容如下:
zhangsan,1234
wang,1234
ding,1234
2、输入密码的时候不显示
代码:
1 #coding=utf-8 2 import os 3 import getpass 4 5 BlackListFileName = ‘E:\\python3.5_study\\s13\\day1\\login\\blacklist.txt‘ #存放黑名单 6 WhiteListFileName = ‘E:\\python3.5_study\\s13\\day1\\login\\whitelist.txt‘ #存放白名单 7 ErrorNum = 0 #记录错误次数 8 BlackFlag = False #遍历黑名单的标志位 9 WhiteFlag = False #遍历白名单的标志位 10 WhiteNameList = [] #存放白名单中所有的用户名字 11 12 print (‘‘‘ 13 ********************* 14 登录入口 15 ********************* 16 ‘‘‘) 17 18 #判断黑名单文件是否存在 19 FileExistBool = os.path.exists(BlackListFileName) 20 if FileExistBool == False: 21 BlackF=open(BlackListFileName,‘w‘) #创建存放黑名单的文件 22 BlackF.close() 23 24 25 UserName = input("请输入用户名:") 26 PassWord = getpass.getpass("请输入密码:") 27 28 #判断用户是否在黑名单中 29 BlackF=open(BlackListFileName,‘r‘) #读取方式打开黑名单文件 30 BlackNameContent = BlackF.readlines() #读取黑名单文件中所有内容,放入list中 31 for i in range(len(BlackNameContent)): 32 BlackName = BlackNameContent[i].strip().split(‘,‘)[0] 33 if UserName == BlackName: 34 print (‘%s用户被锁定‘ %(UserName)) 35 BlackF.close() 36 BlackFlag = True 37 break 38 39 if BlackFlag == False: #BlackFlag==False说明UserName不在黑名单中 40 #判断用户名和密码是否正确 41 while 1: 42 WhiteF=open(WhiteListFileName,‘r‘) #读取方式打开白名单文件 43 WhiteNameContent = WhiteF.readlines() #读取白名单文件中所有内容,放入list中 44 for i in range(len(WhiteNameContent)): 45 Name = WhiteNameContent[i].strip().split(‘,‘)[0] 46 NamePassWord = WhiteNameContent[i].strip().split(‘,‘)[1] 47 WhiteNameList.append(Name) 48 49 if UserName == Name and PassWord == NamePassWord: 50 print (‘恭喜,登录成功‘) 51 WhiteFlag = True 52 break 53 WhiteF.close() 54 55 if UserName not in WhiteNameList: 56 print (‘%s用户不存在‘ %UserName) 57 break 58 59 if WhiteFlag == True: #登录成功,跳出while循环 60 break 61 else: 62 ErrorNum += 1 #用户名和密码错误的话错误次数+1 63 print (‘用户名或密码输入错误,第%d次‘ %ErrorNum) 64 print (‘ErrorNum:‘,ErrorNum) 65 66 if ErrorNum < 3: 67 UserName = input("请输入用户名:") 68 PassWord = getpass.getpass("请输入密码:") 69 else: 70 print (‘错误次数过多,用户被锁定‘) 71 BlackF=open(BlackListFileName,‘a+‘) #追加写黑名单文件 72 BlackName = UserName+‘\n‘ 73 BlackF.write(BlackName) 74 BlackF.close() 75 break
标签:
原文地址:http://www.cnblogs.com/Sophia-sugar/p/5778210.html