Python | 1 日 60 分 × 7 日アプリ学習:Python文法を学ぶアプリ 連絡先管理編

Web APP Python
スポンサーリンク
スポンサーリンク

1日目のゴールと全体像

連絡先管理アプリ 1日目のテーマは 「名前・メールアドレス・電話番号などの“連絡先情報”を入力し、ファイルに保存できる最小のアプリを作りながら、変数・条件分岐・繰り返し・関数・ファイル操作の基礎を体験すること」 です。

ここで作るのは、次のようなシンプルなコンソールアプリです。

  • 名前・メールアドレス・電話番号を入力する
  • テキストファイルに保存する
  • 続けて登録するか終了するか選べる

「連絡先管理」という題材は、 現実の生活で使うイメージがしやすく、データを扱うアプリの基本形 を学ぶのにぴったりです。

連絡先管理アプリの最小イメージ

  1. 「名前を入力してください」
  2. 「メールアドレスを入力してください」
  3. 「電話番号を入力してください」
  4. ファイルに保存
  5. 「続けて登録しますか?(y/n)」
  6. y → もう一件登録
  7. n → 終了

この流れを Python で作るのが 1日目のゴールです。

変数とは何か(連絡先で理解する)

変数は「値に名前をつけて覚えておくメモ」です。

連絡先管理アプリでは、次のような情報を変数に入れます。

name = "佐藤太郎"
email = "taro@example.com"
phone = "090-1234-5678"
Python

こうしておくことで、 あとでファイルに書き込むときに迷わず扱えます。

ポイントは、 「何が入っているか」がわかる名前をつけることnx よりも、nameemail の方が圧倒的に読みやすくなります。

条件分岐とは「状況によって動きを変えること」

連絡先管理アプリでの条件分岐の代表例はこれです。

  • y → 続けて登録
  • n → アプリ終了
  • その他 → 入力ミスとして注意

Pythonでは if / elif / else を使います。

answer = input("続けて登録しますか? (y/n): ")

if answer == "y":
    print("もう1件登録します。")
elif answer == "n":
    print("終了します。")
else:
    print("y か n を入力してください。")
Python

ここで大事なのは、 ユーザーの入力に応じてアプリの動きを変える という感覚です。 これが「プログラムがただの計算機ではなく、対話的なツールになる瞬間」です。

繰り返しとは「同じ流れを何度も回すこと」

連絡先管理アプリでは、 「登録 → 保存 → 続けるか聞く」 という流れを何度も繰り返します。

ここでは while True: を使います。

  • while True: → 永遠に繰り返す
  • break → ループを抜ける
while True:
    # ここに「1件登録する処理」が入る

    answer = input("続けて登録しますか? (y/n): ")

    if answer == "y":
        # 何もしない → while に戻る
        pass
    elif answer == "n":
        print("終了します。")
        break
    else:
        print("y か n を入力してください。")
Python

このパターンは、 コンソールアプリの基本形 と言っていいくらいよく使われます。

関数とは「処理に名前をつけてまとめること」

連絡先管理アプリでは、 「1件分の連絡先を登録して保存する」処理を関数にまとめます。

def add_contact():
    ...
Python

関数を使うと、

  • コードが読みやすくなる
  • 機能ごとに整理できる
  • 拡張しやすくなる

というメリットがあります。

「登録」「表示」「検索」など、 機能ごとに関数を分けていくのがアプリ作りの基本です。

ファイル操作とは「外の世界にデータを残すこと」

Pythonでは open() を使ってファイルを扱います。

連絡先管理アプリでは、

  • contacts.txt に追記する
  • 1件分のまとまりを保存する

という形で使います。

ポイントは次の3つ。

  • "a" → 追記モード(既存の内容の末尾に追加)
  • with open(...) → 自動で閉じてくれる
  • write() → 文字列を書き込む

連絡先管理アプリ 1日目の完成コード

ここまでの話を全部まとめると、 1日目の完成コードは次のようになります。

# 連絡先管理アプリ 1日目
# 目的:
# - 名前・メールアドレス・電話番号を入力してファイルに保存する
# - 変数・条件分岐・繰り返し・関数・ファイル操作を体験する

def add_contact():
    """
    1件分の連絡先データを入力して、ファイルに保存する関数
    """
    # 名前を入力
    name = input("名前を入力してください: ")

    # メールアドレスを入力
    email = input("メールアドレスを入力してください: ")

    # 電話番号を入力
    phone = input("電話番号を入力してください: ")

    # ファイルに書き込む(追記モード)
    # contacts.txt というファイルに連絡先を追加していく
    with open("contacts.txt", "a", encoding="utf-8") as f:
        f.write("==== 連絡先 ====\n")
        f.write(f"名前: {name}\n")
        f.write(f"メール: {email}\n")
        f.write(f"電話番号: {phone}\n")
        f.write("\n")  # 空行で区切り

    print("連絡先を保存しました。contacts.txt を確認してみてください。")


def main():
    """
    アプリ全体の流れを管理する関数
    """
    print("Python 連絡先管理アプリ 1日目")
    print("名前・メールアドレス・電話番号を登録してみましょう。")
    print("------------------------------")

    while True:
        # 1件分の連絡先を登録
        add_contact()

        # 続けるかどうかを聞く
        answer = input("続けて登録しますか? (y/n): ")

        if answer == "y":
            print("もう1件登録します。")
            print("------------------------------")
        elif answer == "n":
            print("連絡先管理アプリを終了します。おつかれさまでした。")
            break
        else:
            print("y か n を入力してください。")


# このファイルを直接実行したときだけ main() を動かすおまじない
if __name__ == "__main__":
    main()
Python

コードの重要ポイントをかみ砕いて解説

変数の役割

name = input("名前を入力してください: ")
email = input("メールアドレスを入力してください: ")
phone = input("電話番号を入力してください: ")
Python
  • ユーザーの入力を変数に保存
  • 変数名は「何が入っているか」がわかる名前にする
  • 後でファイルに書き込むときに、そのまま使える

ここで「変数はデータを一時的に覚えておく箱」だと意識してみてください。

条件分岐の役割

if answer == "y":
    ...
elif answer == "n":
    ...
else:
    ...
Python
  • ユーザーの選択によって動きを変える
  • アプリが「対話的」になる
  • 想定外の入力に対してもメッセージを返せる

条件分岐は、 「ユーザーの意思に応じてアプリの流れを変える」ための仕組み です。

繰り返しの役割

while True:
    add_contact()
    answer = input("続けて登録しますか? (y/n): ")
    ...
Python
  • ユーザーが「終わり」と言うまで続ける
  • break でループを終了する
  • メニュー形式のアプリの土台になる

この「無限ループ+break」は、 多くのコンソールアプリで使われる基本パターンです。

関数の役割

def add_contact():
    ...
Python
  • 「連絡先を1件登録する」という仕事をまとめる
  • main() が読みやすくなる
  • 後で機能を増やすときに、部品として再利用できる

関数は、 「コードを整理するための武器」 だと思ってください。

ファイル操作の役割

with open("contacts.txt", "a", encoding="utf-8") as f:
    f.write("==== 連絡先 ====\n")
    ...
Python
  • "a" → 追記モード(既存の内容の末尾に追加)
  • with → 自動でファイルを閉じてくれる安全な書き方
  • write() → 文字列をファイルに書き込む

ファイル操作は、 「アプリに記憶を持たせる技術」 です。 連絡先のような「蓄積するデータ」を扱うときには必須になります。

1日目で本当に掴んでほしいこと

1. 変数は「意味のある名前をつける」

連絡先はデータが多いので、 変数名がわかりやすいほどコードが読みやすくなります。

2. 条件分岐は「ユーザーの選択に応じて動きを変える」

y なら続ける、n なら終わる。 このシンプルな分岐が、アプリらしさを生みます。

3. 繰り返しは「アプリを継続的に使えるようにする」

1回で終わるプログラムから、 「何度でも使えるツール」へ変わる瞬間です。

4. 関数は「コードを整理するための基本単位」

機能ごとに分けることで、 アプリが「部品の集合」として理解できるようになります。

5. ファイル操作は「データを残すための技術」

連絡先は一度登録したら何度も使うもの。 だからこそ、ファイル保存が重要になります。

次のステップ(2日目の予告)

2日目では、この連絡先管理アプリをさらに育てて、

  • 登録した連絡先を読み出す
  • メニュー形式(登録/一覧表示/終了)にする
  • 複数件のデータを扱う練習をする

という「連絡先管理アプリの基本形」を完成させていきます。

1日目のコードが動いたら、 ぜひ contacts.txt を開いてみてください。 そこに「自分が作ったアプリが残したデータ」がある— それが、プログラミングの面白さの入り口です。

タイトルとURLをコピーしました