pythonで超簡易版家計簿作ってみた
まえがき
現在1年弱一人暮らしをしている中で、お金の管理ができないことに気づきました そのため、シンプルで長続きする家計簿を大学で学習しているプログラミング言語、Pythonを使用して開発しました。
まずはじめに、今回一番重要なのは「長続きすること」です
どうすれば長続きするのか?
- 入力の手間を極力省く
- アプリを実行したい状況にもっていく
今回は、入力の手間を極力省くことで長続きすると仮定しました。
世の中には、家計簿アプリはたくさんあります。 じゃあなぜ、わざわざ自分で自作するのか?
1つは、前にも言った通り長続きしなかった。 入力のカテゴリが多く入力が憂鬱になってしまったことです。
2つ目は、自分で作れは愛着がわき、使うと思ったからです。
3つ目は、pythonのpandasの扱いが下手くそで、うまくデータを整理できない、だから自分で作ってpandasの扱いになれる のが自作する目的です
まえがきが長くなりました。 詳しく説明していきます。
開発環境
まず初めに、GUI(グラフィカルユーザインターフェイス)ではなく、今回はCUI(キャラクタユーザインターフェイス)を利用します。 そのため、入力はすべてキーボード入力です
今回はデータをすべてCSVファイルに保存するので、あらかじめ作成しておきます
家計簿全体フローチャート
実行時画面
数値を入力することでいずれかの処理を行う
登録
削除
- 終了
プログラムを終了する
全ソースコード
以下に今回作成したプログラムを示す。
import numpy as np import pandas as pd import csv import datetime as dt # データを読み込み df = pd.read_csv("家計簿.csv",encoding='cp932') # 削除 def deleted(df): print('削除する行番号を入力') print(df) deleted = int(input()) df = df.drop(deleted,axis=0) return df def entry(): # 日付 print('日付を入力してください') day = pd.to_datetime(input()) day = day.strftime('%Y-%m-%d') # カテゴリ print('カテゴリ-を入力してください') cate = input() # 金額 print('金額を入力してください') mane = int(input()) df_inp = pd.DataFrame({'日付':day,'カテゴリ':cate, '金額':mane},index=[1]) print(df_inp) return df_inp if __name__ == '__main__': while True: print('1:登録\n2:削除\n3:終了') judg = input() if judg == '1': df_inp = entry() # 結合 df = pd.concat([df,df_inp],ignore_index=True) elif judg == '2': df = deleted(df) elif judg == '3': break # 書き込み df.to_csv('家計簿.csv',columns=['日付','カテゴリ','金額'],index=False,encoding='cp932',mode='w') print(df)
改善点
- グラフの作成を行い可視化する
- exe化を行おうと試みたが、できなかったのでその問題を解決したい
- いずれ、GUIでアプリにできれば最高