1.输入用户名密码;
2.认证成功后显示欢迎信息;
3.错误三次后,账号被锁定。
账号文件:user.txt
锁定文件:locked.txt
流程图如下:
# -*- coding:utf-8 -*- # Author Caoxl import sysaccount_file='E:\user.txt' locked_file='E:\locked.txt'def deny_account(username):print('您的用户已被锁定')with file(locked_file,'a') as deny_f:deny_f.write('\n'+username)def main():retry_count=0retry_limit=3 #循环次数while retry_count<retry_limit: #用户最多重复登陆3次username=raw_input('请输入您的用户名:') #引导用户输入用户名with file(locked_file,'r') as lock_f:#采用with打开方式,将locked_file赋值lock_f,防止忘记f.close()关闭文件for line in lock_f.readlines(): #循环遍历每一行的内容if len(line)==0: #对每一行内容进行处理continueif username == line.strip():#利用.strip这个函数去掉换行符,来对username进行匹配。sys.exit('用户已经被锁定!')if len(username)==0: #提示用户登录时,用户名不能为空!print('用户名不能为空,请重新输入')continuepassword= raw_input('请输入您的密码:') #引导用户输入密码with file(account_file,'r') as account_f:flag= Falsefor line in account_f.readlines():user,pawd=line.strip().split() #将用户名和对应密码进行处理if username==user and password==pawd: #判断用户名和密码print('success!')flag=Truebreak #退出for循环if flag==False: #避免用户在三次输入后,依然提示重新输入。if retry_count<2:print('您输入的用户名或密码有误,请重新输入!')retry_count+=1else:print('欢迎用户登陆成功!!')break# 加标志位是为了用户能够成功推出整个循环! deny_account(username)#对应上面的def函数把锁定账号加入文档中去if __name__ == '__main__':main()