一、实践需求
输入用户名、密码
认证成功的话显示欢迎信息
如果输错三次的话锁定这个账号,再次登录这个账号的话就提示帐号已经被锁定,无法登录
思路解析:如果将这个锁定的帐号存储在内存的话,重启机器之后信息就会被清除掉。重启之后在运行的话帐号就变成了可以再次登录的帐号了--将这个变量存储在硬盘当中,这样重启了还是会记住。
二、根据需求用Process On书写流程图
三、代码
# -*- coding:utf-8 -*- # 登录三次锁定用户 # 用于计数(循环三次的判断) count = 0 # 真实用户名和密码 real_username = "tanghouzi" real_password = "1234577" user_list = [] # 读取黑名单的内容 f = open(‘black_user‘, ‘r‘) lock_file = f.readlines() for user in lock_file: user = user.strip(‘\n‘) user_list.append(user) f.close() print(user_list) username = input("请输入用户名:") # 判断输入的用户名是否在黑名单内,如果在则不允许继续输入密码 for i in range(1): if username in user_list: print("对不起,您的用户名已锁定,暂时不允许使用!") exit() else: continue # 尝试输入密码,并将输入次数进行计数 for i in range(3): password = input("请输入密码:") if password == real_password: print("登录成功!") break else: print("登录失败...") count += 1 # 如果错误密码输入了三次,则提示用户名锁定,并将用户名放入黑名单中 if count == 3: print("对不起,您输入的密码错误次数已达3次,将锁定您的账户!") f = open(‘black_user‘, ‘a‘) f.write(‘%s‘ % username + ‘\n‘) f.close()
四、备注
1、需要在同个文件当中新建一个命名为:black_user的文件表示黑名单文件
2、
3、如果是‘w’格式打开机不需要新建文件,如果是‘r’打开就需要先建文件。
其实还可以加一个判断,如果这个文件存在,就用‘r’打开,如果不存在,就暂时不用操作,因为最后一步是用‘w‘打开,此时会创建文件。
4、如果代码中的文件名称是black_user,则新建的文件也不能有后缀,需要命名成black_user即可。同理,如果新建的文件是black_user.txt的话,则代码中的文件也要写成black_user.txt
5、报错科普
原因:你的文件已经close了,但是你还在调用write写入
时间: 2024-10-09 16:39:37