인터넷에서 쉽게 구할 수 잇는 문제이므로 제가 멈칫 했던 부분만 간단히 점검하겠습니다.
[문제]
밑에 나와 있는 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 라는 배열에 붙여준거죠
너무 당연한 이야기인데 딕셔너리와 리스트 개념을 이해하셧으면 더 쉽게 작성 하셨을 거라 생각합니다.
'컴퓨터' 카테고리의 다른 글
이진트리 (Binary Tree) 순회 - Postorder (1) | 2022.10.01 |
---|---|
파이썬_펠린드롬_reverse_bool포맷 (0) | 2022.09.28 |
이진 탐색 트리(Binary Search Tree) (0) | 2022.09.26 |
PYKRX_종목명을 종목번호로 바꾸기 (0) | 2022.09.25 |
python)youtube 영상 내 컴퓨터로 가져오기 (0) | 2022.09.25 |