실습과제
밑에 나와 있는 chicken.txt 파일을 보세요. 제가 운영하는 치킨집 '코딩에빠진닭(이하 코빠닭)'의 12월 매출이 정리되어 있습니다.
1일: 453400
2일: 388600
3일: 485300
4일: 477900
5일: 432100
6일: 665300
7일: 592500
8일: 465200
9일: 413200
10일: 523000
11일: 488600
12일: 431500
13일: 682300
14일: 633700
15일: 482300
16일: 391400
17일: 512500
18일: 488900
19일: 434500
20일: 645200
21일: 599200
22일: 472400
23일: 469100
24일: 381400
25일: 425800
26일: 512900
27일: 723000
28일: 613600
29일: 416700
30일: 385600
31일: 472300
:의 왼쪽에는 해달 월의 며칠인지, 그리고 오른쪽에는 그 날의 매출이 적혀 있습니다.
data 폴더의 chicken.txt 파일을 읽어 들이고, strip과 split을 써서 12월 코빠닭의 하루 평균 매출을 출력하세요. 평균을 구하기 위해서는 총 매출을 총 일수로 나누면 됩니다.
참고로 현재 제공된 파일에는 31일이 있지만, 어떤 달은 31일이 아닐 수도 있습니다. 이 점을 고려해서 확장성 있는 코드를 작성해 주시길 바랍니다.
출력 결과는 아래와 같습니다.
501916.12903225806
과제 해설
파일 열기
with open('data/chicken.txt', 'r') as f:
일별 매출 출력
우선 각 날의 매출을 출력하는 것부터 해 봅시다.
strip과 split을 적절히 활용하면 되겠죠?
for line in f:
data = line.strip().split(": ")
revenue = int(data[1]) # 그날의 매출
print(revenue)
평균 일매출을 구하려면?
우리는 한 달 동안의 평균 일매출을 구하려고 하는데요. 이를 계산하기 위해서 한 달 동안의 총 매출과 한 달 동안의 총 일수를 알아야 합니다.
총 매출과 총 일수를 어떻게 구할 수 있을까요?
총 매출을 누적으로 보관하는 변수 total_revenue를 만듭시다. 마찬가지로 총 일수를 누적으로 보관하는 변수 total_days도 만들겠습니다.
total_revenue = 0
total_days = 0
이제 for 반복문의 수행 부분에 들어갈 때마다, 두 값을 업데이트해야겠죠?
그리고 반복문이 끝나고 나서 print(total_revenue / total_days)를 하면 평균 일매출을 출력할 수 있습니다.
모범 답안
with open('data/chicken.txt', 'r') as f:
total_revenue = 0
total_days = 0
for line in f:
data = line.strip().split(": ")
revenue = int(data[1]) # 그날의 매출
total_revenue += revenue
total_days += 1
print(total_revenue / total_days)
'교육 > [Codeit] 프로그래밍 기초 in Python' 카테고리의 다른 글
실습과제. 단어장 만들기 (0) | 2021.01.11 |
---|---|
파일 쓰기 (0) | 2021.01.10 |
파일 읽기, strip, split (0) | 2021.01.05 |
숫자 맞히기 게임 (0) | 2021.01.02 |
input (0) | 2021.01.02 |