더북(TheBook)

코드 6-1을 작성하고 실행하면 프로그램이 잘 작동합니다. 처음부터 한 행씩 코드를 보면서 무슨 일을 하는 프로그램인지 분석하고, 이 프로그램을 절차 지향으로 바꿔 보겠습니다. 얼마나 알기 쉽게 변하는지 직접 느껴 보세요.

실행에 필요한 함수를 모아 둘 function.py 모듈을 만든 다음 sequential.py를 기능별로 쪼개 함수로 만듭니다. 코드 6-2는 파일의 데이터를 읽어오는 부분만 추린 것입니다.

코드 6-2

raw_data = {}
wb = openpyxl.load_workbook('class_2_3.xlsx')
ws = wb.active
g = ws.rows

for name, score in g:
    raw_data[name.value] = score.value


코드 6-2를 다음과 같이 함수로 바꿔 봅시다.

코드 6-3 oop1/oop1_1/functions.py ①

import openpyxl
import math

def get_data_from_excel(filename):
    '''
    get_data_from_excel(filename) -> {'name1' : 'score1', 'name2' : 'score2', ...}
    엑셀 파일에서 데이터를 가져옵니다
    반환값은 key가 학생 이름이고 value가 점수인 딕셔너리입니다
    '''
    dic = {}
    wb = openpyxl.load_workbook(filename)
    ws = wb.active
    g = ws.rows

    for name, score in g:
        dic[name.value] = score.value

    return dic
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.