하위 목표 4 - 다른 지역과 인구 비교 분석하기
마지막으로 하위 목표 4도 함수로 만들어 봅시다. 하위 목표 4는 하위 목표 1~3과 다르게 한 단계가 더 있습니다. 비교할 행정동을 입력받는 부분이죠. 이 부분은 앞서 만든 dong_search() 함수를 사용하면 됩니다. 그래프를 그리는 부분은 graph_plot() 함수를 호출하도록 변경하고요.
각 행정동의 평균인구를 구하는 부분을 봅시다. 이 부분은 하위 목표 1~3처럼 그대로 작성하면 될까요? 사실 평균인구를 구하는 함수는 이미 정의했습니다. 바로 analysis1() 함수입니다. 따라서 analysis4() 함수에서는 analysis1() 함수를 호출해 두 지역의 평균인구 리스트를 각각 구하면 됩니다. 그런데 analysis1()의 내용 전체가 다 필요한 건 아닙니다. 입력된 행정동의 평균인구를 구하는 부분만 필요하고, 그래프를 그리는 graph_plot() 함수를 호출하는 부분은 필요 없습니다. 따라서 그래프 그리는 부분을 선택적으로 사용하기 위해 analysis1() 함수를 다음과 같이 수정해야 합니다.
# graph_yn 매개변수 추가: 그래프 그리기가 필요하면 y, 필요하지 않으면 n
def analysis1(dong_name, dong_code, graph_yn = 'y'):
population = [0 for i in range(24)]
for row in data:
if row[2] == dong_code:
time, p = row[1], row[3]
population[time] += p
population = [p/31 for p in population]
# 그래프를 그리지 않는 경우 인구 리스트만 반환하고 종료
if graph_yn == 'n':
return population
population = [population]
labels = ['평균인구']
title = dong_name + ' 시간대별 평균인구'
graph_plot(popu_list = population, label_list = labels, graph_title = title)