코딩에 빠진 닭#python :: 테크니션
반응형

인터넷에서 쉽게 구할 수 잇는 문제이므로 제가 멈칫 했던 부분만 간단히 점검하겠습니다.

[문제]

밑에 나와 있는 chicken.txt 파일을 보세요.

제가 운영하는 치킨집 '코딩에빠진닭(이하 코빠닭)'의 12월 매출이 정리되어 있습니다.

1일: 453400

2일: 388600

3일: 485300

4일: 477900

5일: 432100

6일: 665300

7일: 592500

8일: 465200

9일: 413200

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

chicken.txt 파일을 읽어 들이고

strip과 split을 써서 12월 코빠닭의 하루 평균 매출을 출력하세요.

평균을 구하기 위해서는 총 매출을 총 일수로 나누면 됩니다.

참고로 현재 제공된 파일에는 31일이 있지만, 어떤 달은 31일이 아닐 수도 있습니다.

이 점을 고려해서 확장성 있는 코드를 작성해 주시길 바랍니다.

출력 결과는 아래와 같습니다.

501916.12903225806

[답안]

with open('data/chicken.txt', 'r', encoding='UTF=8') as f: # chicken.txt 파일 위치에 따라 맞춰주세요

t_revenue = 0 # 총 매출

t_days = 0 # 총 날수

for line in f:

data = line.strip().split(": ") # /n삭제(화이트페이스), ": " 기준으로 잘라내서 보관

revenue = int(data[1]) # 이부분이 이해가 잘 안됩니다.

l_days += 1

l_revenue += revenue

[포인트]

revenue = int(data[1])

print(data[1]) 하면

453400

388600

485300

.

.

요렇게 나오고 print(data[0])하면 날짜들이 하나씩 출력됩니다.

여기서 for line in f: 를 해석하는 방법을 외우?시면 도움이 되는데

for line in f: 에 의해 line 에는 txt 파일의 한줄씩 할당이 됩니다.

text 파일 전체를 불러오는게 아닌거죠

그러니까 for이 한번 돌아갈때마다 한줄씩만 불러오니 그 데이터를 data[1]에 저장

data[0]은 oo일

정수형으로 반환되려면 int 를 data 라는 배열에 붙여준거죠

너무 당연한 이야기인데 딕셔너리와 리스트 개념을 이해하셧으면 더 쉽게 작성 하셨을 거라 생각합니다.

좋아요1
공유하기
통계
게시글 관리
 
반응형

+ Recent posts