[SK네트웍스 패밀리 엔코어AI캠퍼스] AI 머신러닝 캠프 1기_7월 4주차 회고

[SK네트웍스 패밀리 엔코어AI캠퍼스] AI 머신러닝 캠프 1기_7월 4주차 회고 엔코아 AI 캠퍼스에서 첫 주는 Orientation과 하루 일정의 교육이 이루어 지다 보니, 이번 주가 본격적인 첫 주라고 봐야 할 것 같다. 정말 시간이 눈 깜짝할 사이에 지났다. 이번 주는 AI 개발자의 가장 기본이 되는 Python Programming 능력을 다지고, 실제 데이터 분석 의 핵심인 데이터 수집과 전처리 기술을 습득하는 매우 중요한 시간이었다. Python의 핵심 문법부터 라이브러리를 활용한 실무 기술까지, 적지 않은 양을 학습했고, 학습한 것들을 정리해 본다. 1. Python Programming 문법 가장 먼저 프로그래밍의 기초가 되는 변수와 제어문을 시작으로 코드의 재사용성을 높여주는 함수와 복잡한 데이터를 효율적으로 다루기 위한 자료구조를 학습했다. (1) Python 핵심 문법 정리 - 제어문 : if, for, while 등 조건에 따른 흐름 제어 및 반복 작업 수행 - 자료구조 : 리스트(List), 튜플(Tuple), 딕셔너리(Dictionary), 세트(Set) 등 데이터 특성에 맞는 저장 및 관리 - 함수(Function) : 코드의 논리적 단위 분리, 매개변수와 반환 값을 활용한 코드 재사용성 극대화 # 자료구조와 함수 활용 예시 def process_data(data_list): result = {} for item in data_list: if item not in result: result[item] = 1 else: result[item] += 1 return result data = ['apple', 'banana', 'apple', 'orange', 'banana'] count_result = process_data(data) print(count_re...

모듈화 : 상품 할인 계산기

모듈화 : 상품 할인 계산기

Python에서 기능 별로 쪼개서 특정 기능이 필요할 때 호출해서 사용하는 것이 모듈(Module)이다.

상품을 구입하는 수량에 따라 얼마나 할인된 가격에 구입하게 되는지 알려주는 '상품 할인 계산기'를 통해 구현해 본다.


1. 모듈화의 장점

하나의 파일에 모든 코드를 넣으면 나중에 코드가 길어질 때 관리하기가 매우 어려워 질 수 있다.

기능을 별도의 파일(모듈, Module)로 분리하면,

- 코드 재사용 : 제작해 둔 기능을 다른 프로그램에서도 바로 호출해서 재사용 가능

- 유지 보수 : 수정이 필요할 때 해당 모듈 파일만 수정 가능

- 가독성 : 전체적인 로직의 흐름을 파악하기 수월

상품 할인 계산기 - 모듈 & 실행


2. 모듈(Module) 구현 예시 - 상품 할인 계산기

(1) 할인 계산 모듈 (exercise_08.py)

# exercise_08.py

# 천 단위 쉼표를 찍어주는 함수
def fNumber(n): return format(n, ',') def calculatorTotalPrice(gs): # 예외 처리: 구매 상품이 없을 때 if len(gs) <= 0: print('구매 상품이 없습니다.') return rate = 25 # 기본 할인율 totalPrice = 0 # 할인율을 담은 딕셔너리 (Key: 개수, Value: 할인율) rates = {1:5, 2:10, 3:15, 4:20} # 리스트의 길이(구매 개수)를 활용해 할인율 찾기 if len(gs) in rates: rate = rates[len(gs)] # 총액 계산 (할인 적용) for g in gs: totalPrice += g * (1 - rate * 0.01) return [rate, fNumber(int(totalPrice))]

✅포인트

- 딕셔너리(rates) 활용 :  if - elif  를 여러 번 쓰는 대신, 딕셔너리를 사용하여 구매 개수에 따른 할인율을 쉽게 매칭

- len() 함수 len(gs)  를 통해 현재 장바구니에 담긴 상품 개수를 바로 확인 가능

- fNumber 함수 : 결과를 출력할 때 쉼표를 넣어 가독성을 높임

exercise_08.py - 모듈화 코드 구조


(2) 상품 구매 및 모듈 호출 (main.py)

# main.py
import exercise_08 as ex8 # 모듈 가져오기

if __name__ == '__main__':
    gs = []
    while True:
        selectNumber = int(input('1. 구매, 2. 종료 : '))

        if selectNumber == 1:
            goods_price = int(input('상품 가격 입력 : '))
            gs.append(goods_price) # 리스트에 추가
        elif selectNumber == 2:
            result = ex8.calculatorTotalPrice(gs) # 모듈 함수 호출
            break
    
    print(f'할인율 : {result[0]}%')
    print(f'합계 : {result[1]}원')

✅포인트

import exercise_08 as ex8  : 모듈 정의 파일을 가져와 'md08' 이라는 별명으로 선언

while True  : 종료를 선택하기 전까지 사용자의 입력을 계속 반복

result = ex8.calculatorTotalPrice(gs)  : 모듈 정의 파일에 있는 함수를 호출해서 사용

상품 할인 계산기 실행 결과

3. 주의사항

- 파일 위치 : 모듈 파일(exercise_08.py)과 실행 파일(main.py)는 같은 폴더에 있어야 한다.

if __name__ == '__main__'  코드는 해당 파일이 직접 실행될 때만 작동하도록 제한해서 다른 파일에서 이 코드를 가져다 쓸 때 불필요한 실행을 방지해 준다.

- 디버깅 : 코드가 작동하지 않는다면,  print()  를 사용해 gs 리스트에 값이 제대로 들어갔는지 확인해 보자.

main.py와 exercise_08.py 파일 간의 데이터 흐름


상품 할인 계산기를 통해 Python의 Module 사용법을 연습해 봤다.

모듈 파일을 만들고 실행 파일에서 호출해서 사용하는 여러 가지 프로그램을 만들어서 익숙해 지면 앞으로 좀 더 큰 프로젝트에서 활용하기 좋을 것 같다.


#python #module #calculator #할인 #계산기 #모듈 #import

댓글

이 블로그의 인기 게시물

[SK네트웍스 family 엔코아AI캠퍼스] 나의 목표는 머신러닝 엔지니어다.

[SK네트웍스 패밀리 엔코어AI캠퍼스] AI 머신러닝 캠프 1기_7월 3주차 회고

[SK네트웍스 패밀리 엔코어AI캠퍼스] AI 머신러닝 캠프 1기_7월 4주차 회고