title: 連絡先帳 description: ループで実行されるCLIアプリで、セッション中に連絡先を追加、検索、一覧表示できます。
連絡先帳
Pip ねえ!連絡先が6つのステーションに散らばっていて、いつも見失ってるんだ。電話番号、メール、あちこちにあるんだよ。ターミナルで実行できるシンプルな連絡先帳を作ってくれないかな?人を追加して、名前で検索して、全員のリストを表示する。派手なものじゃなくて、とにかく動くものがほしいんだ 🙏
何を作るのか
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必要な知識
- 辞書 - 各連絡先は辞書です。連絡先帳はそれらのリストです
- リスト - すべての連絡先を1つのリストにまとめてループで処理します
- 関数 - コマンドごとに1つの関数で、コードを整理して読みやすくします
- 制御フロー - ユーザーが「quit」と入力するまで実行されるループ
- 文字列 - 大文字小文字を区別しない検索、名前のフォーマット
ヒント
各連絡先を辞書として保存します。 "name"、"phone"、"email" といったキーを使用します。すべての連絡先をループの外側のリストに保持して、コマンド間で保持されるようにします。
while ループとコマンドチェックが自然な構造です。 コマンドを読み込んで、正しい関数を呼び出して、繰り返します。ユーザーが「quit」と入力したときに抜けます。
検索では、完全一致よりも部分一致の方が便利です。 検索語が名前のどこかに表示されるかをチェックすることで、大文字小文字を区別しなければ、"太郎" は「太郎山田」を見つけます。
さらに進める
コアループが動いたら、以下を試してみてください:
- 保存と読み込み。 ユーザーが終了するとき、すべての連絡先を JSON ファイルに書き込みます。スクリプトを開始するときに、そのファイルが存在すれば読み込みます。これはファイルの章が必要です。
- 連絡先を削除。
deleteコマンドを追加して、名前で連絡先を削除します。 - 並べ替えたリスト。 リスト出力を名前でアルファベット順に並べ替えてから印刷します。

