はじめに
このプログラムは、Python を使って シンプルな家計簿アプリ を実装したものです。
ユーザーが支出を登録し、その合計を計算・確認できるようになっています。
Python の クラス設計 や リスト操作、ループ処理 などの基礎を学ぶのにも適した内容です。
書こうと思ったきっかけ
日常の支出を記録する簡単な仕組みがあれば便利だと考え、Python の オブジェクト指向 を活かして作成してみました。
また、クラスを活用したデータ管理 や リストを用いた集計処理 を実践的に学ぶ機会としても良い題材だと思い、このプログラムを作成しました。
完成したコード
class Expense:
def __init__(self, category, amount):
self.category = category
self.amount = amount
class Budget:
def __init__(self):
self.expenses = []
def add_expense(self, category, amount):
self.expenses.append(Expense(category, amount))
def total_spent(self):
return sum(expense.amount for expense in self.expenses)
def show_expenses(self):
print("\n=== 家計簿 ===")
for expense in self.expenses:
print(f"{expense.category}: ¥{expense.amount}")
print(f"合計支出: ¥{self.total_spent()}")
budget = Budget()
while True:
action = input("\n支出を追加(a) / 確認(s) / 終了(q): ").lower()
if action == "a":
category = input("カテゴリーを入力してください: ")
amount = int(input("金額を入力してください: "))
budget.add_expense(category, amount)
print("支出を追加しました!")
elif action == "s":
budget.show_expenses()
elif action == "q":
break
else:
print("無効な入力です。")
コードの流れ
このコードは シンプルな家計簿アプリ で、ユーザーが支出を記録し、合計金額を確認できる仕組みになっています。
動作の流れは次のとおりです。
クラスの定義
-
Expense
クラス- 支出のカテゴリと金額を管理。
-
Budget
クラス- 家計簿の管理、支出の追加、合計計算、表示を担当。
ユーザーの操作
while True
ループでユーザーに選択肢を提示。-
入力に応じた処理を実行
-
"a"
→ 支出を追加(カテゴリと金額を入力し、リストに追加) -
"s"
→ 支出一覧を表示(登録済みの支出と合計金額を表示) -
"q"
→ プログラムを終了(break
でループを抜ける) - その他 → 無効な入力としてエラーメッセージを表示。
-
このように、シンプルな操作で 家計簿を管理 できる仕組みになっています。
実際に実行してみる
まず、以下のコマンドを実行して作成したコードの動作を確認します。
python test.py
実行結果
~/Desktop ((git)-[main]) python test.py
支出を追加(a) / 確認(s) / 終了(q): a
カテゴリーを入力してください: ラーメン
金額を入力してください: 1200
支出を追加しました!
支出を追加(a) / 確認(s) / 終了(q): a
カテゴリーを入力してください: 牛丼
金額を入力してください: 650
支出を追加しました!
支出を追加(a) / 確認(s) / 終了(q): s
=== 家計簿 ===
ラーメン: ¥1200
牛丼: ¥650
合計支出: ¥1850
支出を追加(a) / 確認(s) / 終了(q):
実際の画面
コードの解説
クラスの定義
class Expense:
def __init__(self, category, amount):
self.category = category
self.amount = amount
category
(カテゴリ)とamount
(金額)を管理するクラス。- コンストラクタ
__init__()
で、カテゴリと金額を設定する。
class Budget:
def __init__(self):
self.expenses = []
- 支出データを管理するリスト (
self.expenses
) を初期化。
家計簿の機能
def add_expense(self, category, amount):
self.expenses.append(Expense(category, amount))
- ユーザーが入力したカテゴリと金額を
Expense
のインスタンスとして追加。
def total_spent(self):
return sum(expense.amount for expense in self.expenses)
- 登録された支出の合計金額を計算して返す。
def show_expenses(self):
print("\n=== 家計簿 ===")
for expense in self.expenses:
print(f"{expense.category}: ¥{expense.amount}")
print(f"合計支出: ¥{self.total_spent()}")
- 登録された支出一覧と合計金額を表示。
ユーザーの操作
while True:
action = input("\n支出を追加(a) / 確認(s) / 終了(q): ").lower()
- 無限ループでユーザーの入力を受け付け、小文字 (
.lower()
) に統一。
if action == "a":
category = input("カテゴリーを入力してください: ")
amount = int(input("金額を入力してください: "))
budget.add_expense(category, amount)
print("支出を追加しました!")
カテゴリと金額を入力し、add_expense()
でリストに追加。
elif action == "s":
budget.show_expenses()
- 支出一覧と合計を表示。
elif action == "q":
break
-
break
でループを抜け、プログラムを終了。
else:
print("無効な入力です。")
a
、s
、q
以外の入力はエラーメッセージを表示。
まとめ
最後までお読みいただき、ありがとうございました。Python のクラスとオブジェクトを使ってシンプルな家計簿を作ることで、関数の仕組みや活用方法への理解が深まりました。
今後も、このような基礎的な内容を分かりやすく整理し、丁寧にまとめていこうと思います。