通讯录
Pip 嘿!我的联系人散落在六个站点里,我老是找不到他们。电话号码、邮箱地址,到处都是。你能帮我做一个可以在终端里运行的简单通讯录吗?添加联系人、按名字搜索、列出所有人。不需要花哨的功能,能用就行 🙏
你要构建的东西
Commands: add / search / list / quit
> add
Name: 王芳
Phone: 07700 900123
Email: [email protected]
Saved.
> search
Name: 王
王芳 — 07700 900123 — [email protected]
> list
1. 王芳 — 07700 900123
2. ...
> quit你需要用到的知识
- 字典 — 每个联系人是一个字典;通讯录是它们组成的列表
- 列表 — 所有联系人放在一个可以遍历的列表中
- 函数 — 每个命令对应一个函数,保持代码整洁易读
- 控制流 — 一个循环,直到用户输入 "quit" 才结束
- 字符串 — 不区分大小写的搜索、名字格式化
提示
将每个联系人存储为字典。 使用 "name"、"phone"、"email" 等键。把所有联系人放在循环外的列表中,这样它们就能在不同命令之间保留下来。
带有命令检查的 while 循环是自然的结构。 读取命令,调用对应的函数,重复执行。当用户输入 "quit" 时跳出循环。
对于搜索,部分匹配比精确匹配更有用。 检查搜索词是否出现在名字中的任何位置——不区分大小写——这样 "王" 就能找到 "王芳"。
进一步拓展
当核心循环可以工作后:
- 保存和加载。 当用户退出时,将所有联系人写入一个 JSON 文件。脚本启动时,如果该文件存在则加载它。这需要文件章节的知识。
- 删除联系人。 添加一个
delete命令,按名字删除联系人。 - 排序列表。 在打印之前,按名字字母顺序对列表输出进行排序。

