昨天要求:
编写登录接口:
1.输入用户名和密码
2.认证成功后可以显示欢迎信息
3.输入三次密码错误后锁定用户信息
4.如果用户名输错,会一直让你输入
#!/usr/bin/env python
#encoding=utf8
#date:2018-04-19
#author:wz
#定义白名单和黑名单文件
account_file='white'
lock_file='black'
#节省脚本的成本,将白名单中的变量存在一个变量中
f=file(account_file)
accountFile=f.readlines()
f.close()
#执行循环操作
while True:
login_success = 0
#block 在此处打开可是每次最外面循环的时候读取文件内容
f2=file(lock_file)
lockFile=[]
for i in f2.readlines():
#将黑名单的名称加入到list中
lockFile.append(i.strip('\n'))
f2.close()
#判断用户名是否在黑名单中,如果存在提示信息,结束外层循环
name=raw_input("please input your name:").strip()
if name in lockFile:
print "%s in lock_file" % name
break
#遍历白名单中的用户名和密码
for line in accountFile:
line=line.split()
#判断用户名是否存在白名单中,如果存在才能输入密码,可以输入三次
if line[0] == name:
for i in range(3):
passwd=raw_input("please input your passwd:").strip()
#判断密码时候正确,如果正确打印欢迎提示,改变变量login_success的值,跳出密码循环
if passwd == line[1]:
print "welcome %s login in the web" % name
login_success = 1
break
#如果三次密码输入错误,打印提示语,将名称加入黑名单中
else:
print "three of error passwd,go to lock %s" % name
f3=file(lock_file,'a')
f3.write('%s\n' % name)
f3.close()
#再次判断login_success的值,如果为1,跳出遍历白名单循环
if login_success == 1:
break
#最后判断login_success的值,如果为1,跳出外层循环
if login_success ==1:
break
作业之后的反思:
1.对于变量login_success的使用确实有点出乎自己的意料,自己有能力写出循环一次的结果,就是没有定义变量,判断的经验造成没有完成这个作业,以后要多注意思考,程序中变量的使用
2.对于思路的养成也是一个很重要的事情