본문 바로가기

교육/[Codeit] 프로그래밍 기초 in Python

실습과제. 코딩에 빠진 닭

반응형

실습과제
밑에 나와 있는 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)

728x90
반응형

'교육 > [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