Python | 1 日 60 分 × 7 日アプリ学習:Python文法を学ぶアプリ 家計簿編

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

家計簿アプリ 1日目のゴール

家計簿アプリ 1日目のテーマは 「支出を入力してファイルに保存する“最小の家計簿アプリ”を作りながら、変数・条件分岐・繰り返し・関数・ファイル操作の基礎を体験すること」 です。

家計簿は、Python初心者にとって最適な題材です。 なぜなら、

  • 入力するデータがシンプル(項目・金額・日付)
  • ファイル保存の効果がすぐに実感できる
  • 後日「集計」「検索」「月別レポート」などに発展できる

というメリットがあるからです。

家計簿アプリ 1日目で作るもの

1日目は、次のようなシンプルなアプリを作ります。

  1. 支出の項目を入力する(例:食費、交通費)
  2. 金額を入力する
  3. 日付を入力する
  4. kakeibo.txt に保存する
  5. 続けて入力するか終了するか選べる

この流れを作ることで、 変数・条件分岐・繰り返し・関数・ファイル操作 をすべて体験できます。

変数とは何か(家計簿で理解する)

変数は「値を入れておく箱」です。

家計簿では、次のような情報を変数に入れます。

item = "食費"
amount = 1200
date = "2026-08-08"
Python

ここで重要なのは、 変数名は「何が入っているか」がわかる名前にすること

xa ではなく、 itemamountdate のように意味のある名前にします。

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

家計簿アプリでの条件分岐の代表例はこれです。

  • 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:
    # 入力処理
    answer = input("続けて入力しますか? (y/n): ")

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

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

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

家計簿アプリでは、 「1件分の支出を入力して保存する」処理を関数にまとめます。

def add_expense():
    ...
Python

関数を使うと、

  • コードが読みやすくなる
  • 機能ごとに整理できる
  • 後で機能を増やすときに再利用できる

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

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

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

家計簿アプリでは、

  • kakeibo.txt に追記する
  • 1件分の支出を保存する

という形で使います。

ポイントは次の3つ。

  • "a" → 追記モード
  • with open(...) → 自動で閉じてくれる
  • write() → 文字列を書き込む

家計簿アプリ 1日目の完成コード

ここまでの話をすべてまとめると、 次のような完成コードになります。

# 家計簿アプリ 1日目
# 目的:
# - 支出(項目・金額・日付)を入力してファイルに保存する
# - 変数・条件分岐・繰り返し・関数・ファイル操作を体験する

def add_expense():
    """
    1件分の支出データを入力して、ファイルに保存する関数
    """
    # 支出項目を入力
    item = input("支出項目を入力してください(例:食費、交通費): ")

    # 金額を入力
    amount = input("金額を入力してください: ")

    # 日付を入力
    date = input("日付を入力してください(例:2026-08-08): ")

    # ファイルに書き込む(追記モード)
    with open("kakeibo.txt", "a", encoding="utf-8") as f:
        f.write("==== 支出 ====\n")
        f.write(f"項目: {item}\n")
        f.write(f"金額: {amount}\n")
        f.write(f"日付: {date}\n")
        f.write("\n")  # 空行で区切り

    print("支出を保存しました。kakeibo.txt を確認してみてください。")


def main():
    """
    アプリ全体の流れを管理する関数
    """
    print("Python 家計簿アプリ 1日目")
    print("支出(項目・金額・日付)を登録してみましょう。")
    print("------------------------------")

    while True:
        # 1件分の支出を登録
        add_expense()

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

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


if __name__ == "__main__":
    main()
Python

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

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

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

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

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

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

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

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

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

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

家計簿は蓄積するデータなので、 ファイル保存がとても重要です。

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

2日目では、この家計簿アプリをさらに育てて、

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

という「家計簿アプリの基本形」を完成させていきます。

さらに学びたい方は ファイル操作の基本 を選ぶと理解がより強固になります。

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