在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
''' 让用户输入用户名密码 认证成功后显示欢迎信息
# !/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan ''' 让用户输入用户名密码 认证成功后显示欢迎信息 用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态 ''' dic_user_info = { "usera": {"pw": "123", "err_count": 0}, "userb": {"pw": "123", "err_count": 0}, "userc": {"pw": "123", "err_count": 0}, "userd": {"pw": "123", "err_count": 0}, "usere": {"pw": "123", "err_count": 0}, } # 创建一个黑名单文件,这里把usera列入黑名单 try: with open('blacklist.txt', 'r') as f: if not f.read(): # 没有内容,就写入 with open('blacklist.txt', 'a') as f: f.write("usera,") except FileNotFoundError as e: # 没有这个文件,就创建并写入内容 with open('blacklist.txt', 'a') as f: f.write("usera,") finally: f.close() # 关闭文件。 for i in range(100): username = input("请输入用户名(按q退出程序):") # 按q退出程序 if username == 'q': exit() # 用户名不在字典中 elif username not in dic_user_info: print("无此账户,请检查您的输入") continue # 用户在字典中,但被锁定 with open('blacklist.txt', 'r') as f: user_locked_list = f.read().split(",") if username in user_locked_list: print("账户%s已被锁定。。。请更换另一个账户" % username) f.close() continue f.close() # 用户在字典中,也未被锁定,则提示输入密码 password = input("请输入密码:") if password == dic_user_info[username]["pw"]: # 密码正确 print("欢迎【%s】登录系统。。。" % username) break else: # 密码错 dic_user_info[username]["err_count"] += 1 # 记录错误次数 if dic_user_info[username]["err_count"] < 3: print("密码不对,您已经输错%d次密码了,输错3次账户将被锁定" % dic_user_info[username]["err_count"]) else: # dic_user_info[username]["err_count"] >= 3: # 输错3次,录入黑名单数据库 with open('blacklist.txt', 'a') as f: f.write("%s," % username) f.close() print("输错3次密码,此账户已加入黑名单") break
|
请发表评论