本案例要求实现包含用户注册、登录、修改密码和注销功能的用户账户管理程序(要求程序使用文件存储用户的账户信息)。用Python写程序
时间: 2024-11-23 20:50:32 浏览: 26
在Python中实现这样的用户账户管理系统,我们可以创建一个类,包含用户相关的属性(例如用户名和密码),以及对应的操作方法。这里我们使用JSON文件作为数据存储媒介,因为其结构简单易读,适合小规模的项目。
首先,我们需要定义一个User类:
```python
import json
class User:
def __init__(self, username, password):
self.username = username
self.password = password # 假设密码直接存储,实际应用中应使用哈希和盐值
# 将用户对象序列化为字典并保存到文件
def save_to_file(self, filename):
data = {"username": self.username, "password": self.password}
with open(filename, "w") as f:
json.dump(data, f)
# 从文件中加载用户数据
@classmethod
def load_from_file(cls, filename):
with open(filename, "r") as f:
data = json.load(f)
return cls(data["username"], data["password"])
# 登录方法,检查密码是否匹配
@staticmethod
def verify_password(username, password, stored_password):
return username == stored_username and password == stored_password
# 示例使用
def main():
while True:
action = input("请选择操作(注册 r,登录 l,修改密码 mp,注销 u,退出 q): ")
if action.lower() == "r":
username = input("请输入用户名: ")
password = input("请输入密码: ")
user = User(username, password)
user.save_to_file("users.json")
elif action.lower() == "l":
username = input("请输入用户名: ")
stored_password = User.load_from_file("users.json").password
if User.verify_password(username, password, stored_password):
print("登录成功")
else:
print("密码错误")
elif action.lower() == "mp":
username = input("请输入用户名: ")
stored_user = User.load_from_file("users.json")
if username == stored_user.username:
new_password = input("请输入新密码: ")
stored_user.password = new_password
stored_user.save_to_file("users.json")
print("密码已更新")
else:
print("无效的用户名")
elif action.lower() == "u":
username = input("请输入要注销的用户名: ")
stored_user = User.load_from_file("users.json")
if username == stored_user.username:
stored_user.password = "*" * len(stored_user.password)
stored_user.save_to_file("users.json")
print("账户已注销")
else:
print("无效的用户名")
elif action.lower() == "q":
break
else:
print("输入无效,请选择有效操作")
if __name__ == "__main__":
main()
```
以上代码实现了用户注册、登录、修改密码和注销的基本功能。不过在实际应用中,记得使用更安全的方式来处理密码,比如使用哈希和盐值来存储。此外,这个例子并未考虑用户输入验证和错误处理,实际项目中应加入相应的检查。
阅读全文