|
发表于 2018-1-7 23:58:21
|
显示全部楼层
本楼为最佳答案
提示这个是因为发帖者设置了 “仅作者可看” 导致……
应该是这个代码:
- class Login(object):
- def __init__(self):
- # 失败计数
- self.fail_count = 0
- #允许失败次数
- self.fail_num = 2
- # 模拟数据
- self.users = {
- '小明': '111111',
- '小花': '222222',
- '小狗': '333333',
- }
- # 状态码
- self.status = self.take_status()
- # 登录成功欢迎词
- def welcome_message(self,username):
- print('%s 先生(女士) 你好, 欢迎来到xxx!' % username)
- # 超过失败次数显示
- def fail_message(self):
- print('%s次机会耗尽,锁定中!' % self.fail_num)
- # 检查用户输入
- def __check(self, username, password):
- if username not in self.users.keys():
- return False
- elif password != self.users[username]:
- return False
- else:
- return True
-
- # 超过失败次数把锁定状态码写入文件
- def lock_file(self):
- with open('check_file.txt', 'w') as f:
- f.write('false')
- # 获取状态码, 如果文件不存在 创建文件
- def take_status(self):
- try:
- with open('check_file.txt' ,'r') as f:
- return f.read()
- except Exception:
- with open('check_file.txt' ,'w') as f:
- f.write('true')
- return 'true'
-
- def main(self):
- while True:
- if self.fail_count == self.fail_num:
- self.fail_message()
- self.lock_file()
- break
- username = input('请输入用户名: ')
- password = input('请输入密码: ')
- if self.__check(username, password):
- self.welcome_message(username)
- break
- print('用户名或密码错误')
- self.fail_count += 1
- if __name__ == '__main__':
- ins = Login()
- if ins.status == 'true':
- ins.main()
- else:
- ins.fail_message()
复制代码 |
|