python 写一个函数zc func,完成注册,并将注册的用户名和密码保存在本地写一个函数loginfunc,限制三次登录功能,超出三次提示您没有权限登录,与本地文件的用户名和密码去验证,如果一致就登录成功,如果不一致就失败
时间: 2024-11-06 22:16:54 浏览: 43
在Python中将函数作为另一个函数的参数传入并调用的方法
在Python中,你可以使用内置的`json`模块来处理文件读写,并结合`os`模块来操作文件路径。下面是一个简单的示例,展示了如何编写这样的函数:
```python
import json
import os
# 定义注册函数
def zc_func(username, password):
# 检查用户是否已存在
if os.path.exists("users.json"):
with open("users.json", "r") as file:
data = json.load(file)
if username in data:
print("用户名已存在,请选择其他用户名")
return
# 将数据保存到本地文件
users_data = {"username": username, "password": password}
with open("users.json", "w") as file:
json.dump(users_data, file)
print(f"用户 {username} 注册成功")
# 定义登录函数
def loginfunc(password_to_check, max_attempts=3):
attempts = 0
while attempts < max_attempts:
# 如果文件不存在则创建
if not os.path.exists("users.json"):
zc_func("", "") # 假设第一次登录需要先创建用户
break
with open("users.json", "r") as file:
stored_data = json.load(file)
if stored_data["username"] == "" or stored_data["password"] == "":
print("文件为空,无法登录")
break
if stored_data["password"] == password_to_check:
print("登录成功")
break
else:
print("密码错误")
attempts += 1
if attempts == max_attempts:
print("登录尝试次数过多,无权登录")
break
# 示例使用
zc_func("example_user", "example_password")
loginfunc("example_password")
```
这个例子假设有一个名为`users.json`的文件存储用户名和密码。在实际应用中,为了安全起见,应该对敏感信息进行加密存储。
阅读全文