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

title: 联系人簿 description: 一个在循环中运行的 CLI 应用,你可以在会话期间添加、搜索和列出联系人。

联系人簿

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" 时跳出循环。

对于搜索,部分匹配比精确匹配更有用。 检查搜索词是否出现在名字中(不区分大小写)意味着 "zhang" 可以找到 "张三"。

进阶

核心循环工作后,你可以:

  • 保存和加载。 当用户退出时,将所有联系人写入 JSON 文件。当脚本启动时,如果文件存在就加载它。这需要文件相关的知识。
  • 删除联系人。 添加一个 delete 命令,可以按名字删除联系人。
  • 排序列表。 在打印之前,按名字字母顺序对列表输出进行排序。