더북(TheBook)

매입상태는 열 인덱스 [-1]에 있으므로 과정 2.1에서 조건문 if row[-1] == '전표매입'으로 승인거래만 골라낼 수 있습니다. 그리고 조건을 만족할 때만 이용금액을 총 지출액인 spend 변수에 더하면 승인거래의 이용금액만 spend에 저장됩니다. 이때 data[n]row에 들어가는 일차원 리스트이므로 data[n][-3]은 반복문 내부에서는 row[-3]과 같습니다. 따라서 합은 spend += int(row[-3])으로 구하면 됩니다. 또는 이용금액만을 추출해 payment 변수에 저장하고 이 값을 spend에 더해도 됩니다. 실행결과는 같습니다. 이는 코딩 스타일의 차이일 뿐이니 선호하는 방식으로 작성하면 됩니다.

정리한 내용을 실제 파이썬 프로그램으로 옮겨 봅시다. 마지막에 print(spend)도 넣어 결과를 확인합니다.

spend = 0
for row in data:
    if row[-1] == '전표매입':
        payment = int(row[-3])
        spend += payment
print(spend)
실행결과
8174028

3개월간 총 지출액이 8,174,028원이네요. 꽤 많은 돈은 썼군요!

TIP NameError가 발생한다면 프로그램을 실행하는 과정에서 CSV 파일을 읽어 들이지 못해서 그렇습니다. 이는 data 변수가 만들어지지 않아서 발생하는 오류입니다. CSV 파일은 처음 한 번만 읽어 오면 되므로 앞의 코드 위에 1절에 나온 CSV 파일 읽어 들이기 코드를 추가해야 합니다. 앞으로는 CSV 파일을 읽어 들이는 코드를 이미 실행했다고 가정하고 진행하겠습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.