매입상태는 열 인덱스 [-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 파일을 읽어 들이는 코드를 이미 실행했다고 가정하고 진행하겠습니다.