Skip to content
This page has been auto-translated and may contain errors.View in English

通讯录

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 命令,按名字删除联系人。
  • 排序列表。 在打印之前,按名字字母顺序对列表输出进行排序。