본문 바로가기

[python] 파이썬에서 꼭 알아야 할 모듈과 패키지의 사용법과 실습!

Derrick 발행일 : 2023-08-02
728x90
반응형

 # 학습 목표

  - 모듈이 무엇인지 이해한다.

  - 모듈을 사용하고, 직접 만들 수 있다.

  - 모듈과 패키지의 차이점을 이해한다.

 

 

1. 모듈이란?

개발할 때 코드의 길이가 길어지면 모든 함수와 변수를 구현하는 것은 불가능...
누군가 만들어놓은 함수와 변수를 활용할 수 있다. 이때 사용하는 개념이 '모듈'
→ 즉, 모듈은 '특정 목적'을 가진 함수와 자료들의 모임

 

2. 모듈 사용하기

1) 모듈 불러오기

' import ' 키워드를 이용해서 모듈을 사용할 수 있다.

 

# random 모듈 불러오기
import random

2) 모듈 사용법 확인하기

 모듈 속 사용하려는 함수나 변수의 사용법 확인!
 → 함수의 경우, 어떤 인자와 어떤 반환값을 가지는지
 → 변수의 경우, 어떤 자료형인지 ex) int, str 등
   ex) random.randrange(start, stop) : start ~ stop 중의 한 원소를 가지고 온다.

3) 모듈 사용하기

' . ' (dot)을 쓴 후에 모듈 속의 함수와 변수를 사용
→ 이미 만들어진 모듈을 통해 함수들을 일일이 생성하지 않고 편리하게 사용할 수 있다.

 

# 모듈 사용의 예시
import random

print(random.randrange(0,2))				# 0이상 2미만 수 중 임의 출력

4) 모듈 만들기

구현하고자 하는 기능이 담긴 모든 모듈들이 구현되어있지 않기에, 필요에 따라 새롭게 만들어야 한다.
 → 원하는 내용과 로직이 남긴 모듈 제작! → .py 형태로 만들 수 있다.

 

 # 모듈 만드는 기초 예시

# 1) py 파일을 생성한 후, 함수와 변수를 만든다.
# cal.py	→ 생성한 모듈은 'import cal'을 한 후, plus()를 어디든 사용할 수 있다.
def plus(a,b):
	c = a + b
    return c

# 2) 다른 파일에서 만들어 둔 py 파일을 불러온다.
# main.py
import cal					# 'cal' 라는 모듈을 불러오겠다는 의미 

# 불러온 모듈 속 함수 사용
print(cal.plus(3,4))				# 7 출력

5) 모듈 만들기 예제

Q) cal.py 라는 계산기 기능이 담긴 모듈을 생성. 모듈 안에는 plus()와 minus() 함수가 있고, 모델명이 담긴 변수인 modelName이 있다. cal.py를 만들어보고, main.py에서 이를 불러와서 실행해보자.

 

# cal.py

def plus(a,b):
	c = a + b
    return c

def minus(a,b):
	c = a - b
    return c

modelName = 'ELI-C2'


# main.py
import cal

var1 = cal.modelName
var2 = cal.plus(3,4)
var3 = cal.minus(7,2)

## 모듈 cal에서 설정한 변수와 함수 출력
print(var1, var2, var3)						# ELI-C2  7  5

 

반응형

3. 모듈 활용하기

이제부터는 모듈을 어떻게 활용하고 유용한 모듈을 확인해보자

 1) math

수학 연산을 도와주는 모듈.  무리수 π(3.14)와 자연상수 e(2.71)가 변수로 포함됨.

 

import math

print(math.pi)					# 3.141592...
print(math.e)					# 2.718281

2) random

랜덤한 숫자를 선택해주는 함수들이 담긴 모듈
 ex) random.randrange(a,b) : a이상 b미만의 수 중 하나를 반환하는 함수 

 

import random

print(random.randrange(1,11))
# 1부터 10까지의 숫자 중 하나를 출력

3) time

시간과 관련된 함수가 포함된 모듈
 ex) time.ctime() : "요일 월 일 시간 년" 순으로 현재 시간을 문자열로 반환해주는 함수

 

4. 패키지

1) 패키지란?

패키지는 모듈을 폴더(Directory)로 구분하여 관리하는 것을 의미한다.
하나의 프로젝트 내에 많은 폴더와 그 안에 모듈(.py)가 있을 것이고, 이를 계층적으로 관리하는 것을 패키지라고 보면 된다. 결국 패키지라는 것은 모듈들을 편리하게 관리하기 위해서 필요!

 

project/
    sound/ ... / ... / ~.py
    script/ ... / ... / ~.py
    audio/ ... / ... / ~.py

2) 패키지 안의 모듈 사용하기 (☆☆☆)

- 아래와 같이 모듈이 존재할 때, 이를 사용하는 방법은?
 →  user 패키지 > cal 모듈 > plus() 함수

[ 모듈의 사용 예시 ]

 

 ① import을 이용하여 폴더(=모듈)를 불러온 후 함수 실행

 

import user.cal					# user 폴더 안에 있는 cal 모듈 불러오기

print(cal.plus(3,4))

 

from-import 을 사용 ( 함수 및 변수 사용시, ' . '를 써주지 않아도 된다. )

 

# user 안에 있는 cal 모듈로부터 plus 함수/변수를 불러온다.
from user.cal import plus

print(plus(3,4))

3) 예제1 - 웹페이지 정보를 불러와서 해당 url의 html 출력

- urllib 패키지를 통해 웹페이지의 정보를 가져올 수 있다. 
 → 이중 urllib.request.urlopen() 함수를 통해 해당 url의 html 파일을 가져올 수 있다.

 

from urllib.request import urlopen

# urlopen 함수를 통해 주소를 불러오고, read() 메서드를 통해 읽어온다
webpage = urlopen("https://en.wikipedia.org/wiki/Lorem_ipsum").read().decode("utf-8")

print(webpage)					# 해당 주소의 html 출력 확인

4) 예제2 - 로또 추첨기

1~45까지의 숫자 중 임의의 6개의 수를 맞추는 게임인 로또 게임을 randrange()를 이용해서 만드시오

 

import random

lotto = []

while len(lotto) < 6:					# lotto의 길이가 6이 될때까지 수행
	num = random.randrange(1,46)			# 1~45까지 중 임의의 수 추출
    if num not in lotto:
    	lotto.append(num)

lotto.sort()
print(lotto)

 

 

댓글