본문 바로가기
Python

파이썬을 이용한 간단한 지출 내역 정리 프로그램

by 아짱이아빠 2022. 6. 18. 15:46
반응형

간단히 지출 내역을 정리하는 프로그램을 파이썬을 이용하여 만들어 본다.

이 코드는 유튜브 “Computer Science” 에서 참고하였다.

 

먼저 이 프로그램을 위해서 다음의 라이브러리를 불러온다.

import numpy as np
import pandas as pd
from datetime import date

 

그리고 다음의 빈 List를 만들어 둔다.

SERVICE_ITEMS = []
PRICES = []
DATES = []
EXPENSE_TYPES = []

 

아래는 앞에서 만든 List에 앞으로 추가되는 각 항목들을 누적해서 저장하는 기능을 def 함수를 정의한 것이다. 

def add_expense(service_item, price, date, expense_type):
  SERVICE_ITEMS.append(service_item)
  PRICES.append(price)
  DATES.append(date)
  EXPENSE_TYPES.append(expense_type)

 

다음의 코드가 메인 코드 부분이다.

코드는 while 문에 의해 계속 수행되며 ‘나가기’ 옵션을 선택하지 않는 한 계속 수행된다.

option = -1
while(option != 0):
  print('지출 내역 관리 프로그램에 오신걸 환영합니다 :')
  print('1. 식비 지출')
  print('2. 집 유지 관련 지출')
  print('3. 교통비 지출')
  print('4. 지출 보고서 보기')
  print('0. 나가기')
  option = int(input('옵션을 선택하세요 : \n'))
  print()

  if option == 0:
    print('프로그램을 나갑니다')
    break
  elif option == 1:
    expense_type = '(식비)'
  elif option == 2:
    expense_type = '(집 유지)'
  elif option == 3:
    expense_type = '(교통비)'
  elif option == 4:
    expense_report = pd.DataFrame()
    expense_report['지출 내역'] = SERVICE_ITEMS
    expense_report['비용'] = PRICES
    expense_report['날짜'] = DATES
    expense_report['지출 항목'] = EXPENSE_TYPES
    expense_sum = expense_report['비용'].sum()
    expense_report = expense_report.append(pd.DataFrame([['-', '총합:'+str(expense_sum),'-','-']], columns=['지출 내역', '비용', '날짜', '지출 항목']))
    expense_report.to_csv('expenses.csv')
    print(expense_report)
  else:
    print('잘못된 옵션을 선택하셨습니다. 다음의 옵션 중 선택하세요 0, 1, 2, 3, 4')

  if option == 1 or option == 2 or option ==3:
    service_item = input('지출 항목을 넣으세요 '+expense_type+':\n')
    price = float(input('지출 비용을 넣으세요 :\n'))
    today = date.today()
    add_expense(service_item, price, today, expense_type)
  print()

 

코드의 구조를 알아보면, 먼저 간단히 옵션 카테고리를 정의한다.

그리고 if 문을 이용하여 각 옵션을 선택했을 때 기능을 정의한다.

옵션 0을 선택하면 프로그램을 나가고 옵션 1과 2, 3을 선택하면 지출 타입을 정의하게 된다.

옵션 4 를 선택하면, 빈 dataframe을 만들고 입력된 지출 항목과 비용, 날짜를 각 column에  저장한다.

그리고 비용 column은 .sum() 함수를 이용하여 총합이 계산되어 expense_report의 마지막 줄에 총합이 추가된다.

이후 expense_report는 expenses를 이름으로 하는 csv 파일로 만들어진다.

 

그다음의 if 문에는 옵션 1 또는 2 또는 3을 선택했을 때 기능을 정의하는데 세부 지출 항목과 비용은 직접 넣도록 input 기능을 사용하고 날짜는 현재의 날짜가 자동으로 들어간다.

 

입력된 지출 항목과 비용, 날짜는 앞에서 정의해 놓은 누적하는 def 함수를 통해 누적 관리된다.

코드 중간과 끝에 있는 print()는 빈 줄을 만들어 넣기 위해 들어가 있다.

 

이렇게 만들어진 코드를 실행하면 아래와 같이 수행된다.

지출 내역 관리 프로그램 실행 화면
(지출 내역 관리 프로그램 실행 화면)

 

옵션 4를 눌러 그동안 입력한 내용을 보고서로 만들면 아래와 같이 csv 파일이 생성되고 내용을 확인할 수 있다.

 

지출 내역 관리 프로그램 csv 파일 출력
(지출 내역 관리 프로그램 csv 파일 출력)

 

여기까지 파이썬을 이용하여 간단히 지출내역을 정리하는 프로그램에 대해 알아봤다.

그렇지 않아도 최근 파이썬으로 편리한 가계부를 만들어 보면 어떨까 생각하고 있었는데 좋은 아이디어를 얻은 것 같다.

기능들을 더 추가하고 파이썬 Gui도 이용하여 가계부를 만들어보면 좋은 공부가 될 것 같다.

 

반응형

댓글