From fd719120ff73df0003ceab4b41ecb96861817e1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A0=83=E8=90=A5?= <1572506709@qq.com> Date: Wed, 7 Oct 2026 23:52:42 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E7=A8=8B=E9=A2=982=EF=BC=9A=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=AE=A1=E7=90=86=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- q2/main.py | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 q2/main.py diff --git a/q2/main.py b/q2/main.py new file mode 100644 index 0000000..ceed9a4 --- /dev/null +++ b/q2/main.py @@ -0,0 +1,58 @@ +import json + + +class UserManager: + """管理用户数据的增删查改,并支持 JSON 文件保存和加载。""" + + def __init__(self): + self.users = [] # 存放所有用户字典 + self.next_id = 1 # 下一个要分配的 id + + def add_user(self, name, age): + """添加用户,自动分配 id,返回该用户字典。""" + user = {"id": self.next_id, "name": name, "age": age} + self.users.append(user) + self.next_id += 1 + return user + + def get_user(self, user_id): + """按 id 查询用户,不存在返回 None。""" + for user in self.users: + if user["id"] == user_id: + return user + return None + + def update_age(self, user_id, age): + """修改用户年龄,成功返回 True,不存在返回 False。""" + for user in self.users: + if user["id"] == user_id: + user["age"] = age + return True + return False + + def remove_user(self, user_id): + """删除用户,成功返回 True,不存在返回 False。""" + for user in self.users: + if user["id"] == user_id: + self.users.remove(user) + return True + return False + + def list_users(self): + """列出所有用户(按添加顺序)。""" + return self.users + + def save_to_json(self, filepath): + """把所有用户保存为 JSON 文件。""" + with open(filepath, "w", encoding="utf-8") as f: + json.dump(self.users, f, ensure_ascii=False, indent=2) + + def load_from_json(self, filepath): + """从 JSON 文件加载用户,覆盖当前数据。""" + with open(filepath, "r", encoding="utf-8") as f: + self.users = json.load(f) + # 后续添加的 id 接续已加载的最大 id + if self.users: + self.next_id = max(user["id"] for user in self.users) + 1 + else: + self.next_id = 1