模拟登陆: 用户输入帐号密码进行登陆 用户信息保存在文件内 用户密码输入错误三次后锁定用户,下次再登录,检测到是这个用户也登录不了用Python写代码
时间: 2024-02-18 20:06:18 浏览: 36
以下是 Python 代码:
```python
import json
def login():
with open("users.json", "r") as f:
users = json.load(f)
username = input("请输入用户名:")
password = input("请输入密码:")
if username in users:
if users[username]["locked"]:
print("该用户已被锁定,请联系管理员解锁")
return
if password == users[username]["password"]:
print("登陆成功")
users[username]["login_attempts"] = 0
else:
users[username]["login_attempts"] += 1
if users[username]["login_attempts"] >= 3:
users[username]["locked"] = True
print("密码错误,剩余尝试次数:%d" % (3 - users[username]["login_attempts"]))
else:
print("该用户不存在")
with open("users.json", "w") as f:
json.dump(users, f)
login()
```
其中,用户信息保存在一个 JSON 文件`users.json`中,格式如下:
```json
{
"张三": {
"password": "123456",
"login_attempts": 0,
"locked": false
},
"李四": {
"password": "abcdef",
"login_attempts": 1,
"locked": false
}
}
```
每次登陆时,先从文件中读取用户信息,如果用户名不存在,则提示该用户不存在;如果用户名存在,则判断该用户是否被锁定,如果被锁定,则提示用户联系管理员解锁;如果未被锁定,则判断输入的密码是否正确,如果正确,则登陆成功,否则记录错误次数,并根据错误次数判断是否需要锁定该用户。最后,将更新后的用户信息保存回文件中。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)