본문 바로가기
-----ETC2-----/Python

[Python] Week 15: 모듈

by cogito21_python 2024. 6. 1.
반응형

Day 1: 모듈의 기본 개념

  • 강의 내용:
    • 모듈의 정의와 필요성
      • 모듈의 개념과 장점
      • 코드 재사용과 모듈화
    • 모듈 임포트
      • import 문을 사용한 모듈 임포트
      • as 키워드를 사용한 별칭 지정
  • 실습:
    • 기본 모듈 임포트 예제 작성
# 기본 모듈 임포트
import math

print(math.sqrt(16))  # 4.0

# 별칭을 사용한 모듈 임포트
import math as m

print(m.sqrt(16))  # 4.0

 

Day 2: 특정 함수 또는 클래스 임포트

  • 강의 내용:
    • from ... import ... 문법
      • 모듈에서 특정 함수 또는 클래스 임포트
      • from ... import ... as 문법을 사용한 별칭 지정
    • 모듈 임포트의 장점과 단점
  • 실습:
    • 특정 함수 또는 클래스를 임포트하는 예제 작성
# 특정 함수 임포트
from math import sqrt

print(sqrt(16))  # 4.0

# 특정 함수를 별칭으로 임포트
from math import sqrt as square_root

print(square_root(16))  # 4.0

 

Day 3: 사용자 정의 모듈

  • 강의 내용:
    • 사용자 정의 모듈의 개념
      • 사용자 정의 모듈 작성 방법
      • 모듈 파일 생성 및 임포트
    • 모듈 경로와 PYTHONPATH
  • 실습:
    • 사용자 정의 모듈 작성 및 임포트 예제
# mymodule.py 파일 생성
def greet(name):
    return f"Hello, {name}!"

# 사용자 정의 모듈 임포트 및 사용
import mymodule

print(mymodule.greet("Alice"))  # 'Hello, Alice!'

 

Day 4: 패키지의 개념

  • 강의 내용:
    • 패키지의 개념
      • 패키지의 정의와 필요성
      • 디렉토리를 패키지로 사용
    • 패키지 임포트
      • import ... from ... 문법을 사용한 패키지 임포트
  • 실습:
    • 패키지 작성 및 임포트 예제
# mypackage/__init__.py 파일 생성 (빈 파일)

# mypackage/mymodule.py 파일 생성
def greet(name):
    return f"Hello, {name}!"

# 패키지 임포트 및 사용
from mypackage import mymodule

print(mymodule.greet("Bob"))  # 'Hello, Bob!'

 

Day 5: 모듈의 재로딩과 dir() 함수

  • 강의 내용:
    • 모듈의 재로딩
      • 모듈의 재로딩 개념
      • importlib.reload() 함수 사용
    • dir() 함수
      • 모듈의 함수와 변수 목록 확인
  • 실습:
    • 모듈 재로딩과 dir() 함수를 사용하는 예제
import importlib
import mymodule

# 모듈 재로딩
importlib.reload(mymodule)

# dir() 함수 사용
print(dir(mymodule))  # ['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'greet']

 

Day 6: 표준 라이브러리 모듈

  • 강의 내용:
    • 표준 라이브러리 모듈의 개념
      • 파이썬 표준 라이브러리 소개
      • 자주 사용하는 표준 라이브러리 모듈
    • os, sys, datetime 모듈
      • os 모듈: 운영체제 관련 기능
      • sys 모듈: 파이썬 인터프리터 관련 기능
      • datetime 모듈: 날짜와 시간 처리
  • 실습:
    • os, sys, datetime 모듈을 사용하는 예제 작성
import os
import sys
import datetime

# os 모듈 사용 예제
print(os.name)  # 운영체제 이름 출력
print(os.getcwd())  # 현재 작업 디렉토리 출력

# sys 모듈 사용 예제
print(sys.platform)  # 현재 플랫폼 출력
print(sys.version)  # 파이썬 버전 출력

# datetime 모듈 사용 예제
now = datetime.datetime.now()
print(now)  # 현재 날짜와 시간 출력
print(now.strftime("%Y-%m-%d %H:%M:%S"))  # 형식 지정 출력

 

Day 7: 모듈 종합 연습 및 프로젝트

  • 강의 내용:
    • 모듈 종합 연습 문제 풀이
      • 다양한 모듈 관련 문제
      • Q&A 세션
    • 미니 프로젝트
      • 주제 선정 및 프로그램 설계
      • 모듈을 활용한 프로그램 구현 및 테스트
  • 실습:
    • 종합 연습 문제 풀기
    • 미니 프로젝트 작성 및 발표
# 연습 문제 1: 사용자 정의 모듈에서 두 숫자의 합을 계산하는 함수 작성
# mymodule.py
def add(a, b):
    return a + b

# main.py
import mymodule
print(mymodule.add(3, 5))  # 8

# 연습 문제 2: 패키지를 사용하여 문자열 처리 모듈 작성
# string_utils/__init__.py (빈 파일)
# string_utils/string_ops.py
def reverse_string(s):
    return s[::-1]

# main.py
from string_utils import string_ops
print(string_ops.reverse_string("Python"))  # 'nohtyP'

# 미니 프로젝트 예제: 파일 시스템 탐색기
# filesys.py
import os

def list_files(directory):
    return os.listdir(directory)

def file_info(filepath):
    return {
        "size": os.path.getsize(filepath),
        "modified": os.path.getmtime(filepath)
    }

# main.py
import filesys

directory = "."
files = filesys.list_files(directory)
print("Files:", files)

for file in files:
    info = filesys.file_info(file)
    print(f"File: {file}, Size: {info['size']} bytes, Modified: {info['modified']}")

 

이 강의는 파이썬의 모듈을 익히는 것을 목표로 하며, 각 강의는 이론과 실습을 포함합니다. 다음 주차에 대한 상세 강의를 원하시면 말씀해 주세요!

 

반응형