用户登入认证模块
1、输入用户名和密码:
2、认证成功后显示欢迎信息:
3、输入三次错误后锁定用户信息(通过黑名单)
知识要点:
1、读取白名单(可以用字典,也可以用文件)。
1 dic = {'u1':'a1','u2':'a2','u3':'a3','dy':'abc123'}
2、读取和写入黑名单。
1 #读取黑名单 2 3 f = open('Huser.txt','r') 4 blacklist = f.read() 5 f.close()
1 #加入黑名单 2 3 f = open('Huser.txt','a') #添加方式打开文件 4 f.write('%s' %username) #插入报错的用户名 5 f.write('\n') 6 f.close()
3、if循环
4、for循环
5、计数器的使用:
3、正文:
1 #!/usr/bin/env python 2 # -*- coding:utf8 -*- 3 # Author:Dong Ye 4 5 6 dic = {'u1':'a1','u2':'a2','u3':'a3','dy':'abc123'} 7 counter = 0 8 9 #读取黑名单: 10 f = open('Huser.txt','r') 11 blacklist = f.read() 12 f.close() 13 14 15 16 #用户输入用户名,并判断是否被锁定,(可以变更为是否有权限登入) 17 username = input("请输入用户名: ").strip() 18 if username in dic.keys(): 19 if username in blacklist: 20 #print("您的用户已经锁定,请联系管理员!") 21 exit('您的用户已经锁定,请联系管理员!') 22 #else: 23 #print("没有被锁定。。") 24 else: 25 exit("无效用户") 26 27 28 #判断白名单是否正确,如果白名单存在输入三次密码后将会被锁定,如果白名单不存在则提示无效用户: 29 for i in range(10): 30 if counter < 3: 31 passwd = input("请输入密码:").strip() 32 if passwd in dic.values(): 33 print("登入成功") 34 break 35 else: 36 print("密码错误") 37 else: 38 print("对不起,您输入次数过多,用户已被锁定,请联系管理员") 39 40 #加入黑名单 41 f = open('Huser.txt','a') # 42 f.write('%s' %username) 43 f.write('\n') 44 f.close() 45 break 46 counter += 1