三次登陆验证及锁定(源码及试错笔记)
#!/usr/bin/env python
#coding:utf-8
##创建账号文件
f1=open('name.txt','a')
f1.close()
##创建黑名单表
f2=open('blacklist.txt','a')
f2.close()
##读取黑名单和白名单信息
Black_list = open('blacklist.txt','r').readlines()
name2 = open('name.txt','r').readlines()
def Check_blacLlist(): #检查是否在黑名单内
name = raw_input('Input your name:')
for i in Black_list:
if name in i:
print('Contex your admin!')
return 0
else:
#print(type(name))
break
return name
##可以用左测试函数返回值
#le = Check_blacLlist()
#print(le)
count = 0 #验证计数器
break_flag = False #标记整个while,让整个while循环跳出
while True:
#break_flag = False #标记点不能放在循环体里面
#count = 0 #不能加入while循环里面,不然就会重新是0开始了
# name3 = raw_input('name:')
# print(type(name3))
if break_flag == True:
break
name3 = Check_blacLlist()
if name3 == 0:
break
for i in name2:
#if break_flag == False:
#name3 = raw_input('name:')
if name3 in i:
pawd = raw_input('pwd:')
last = name3 + ' '+ pawd
#print(last)
if last in i:
print('welcome!')
break_flag = True
print(break_flag) #测试可否跳出整个跳出while循环
else:
count += 1
print(count) #测试验证次数
continue
if count >= 3:
print('Contex your admin!')
f2=open('blacklist.txt','a')
f2.write(last)
f2.close()
else:
continue
#if break_flag == True: ##如果放最后,就会导致又再次循环
#break