데이터분석 🔎

[데이터 분석을 위한 라이브러리] 파이썬 모듈이란?

23.8 2022. 11. 24. 06:33
반응형

1. 파이썬의 여러가지 모듈과 패키지.

01. 모듈이란

02. 모듈 사용하기

03. 모듈 만들기

04. 패키지

05. 실습

 

01. 모듈이란

 

코드의 길이가 길어지는 상황들이 발생.

이때 필요한 모든 함수나 변수를 구현하는 것은 불가능

=> 누군가 만들어 놓음 함수, 변수 등을 활용.

이런 함수와 변수의 모음집을 모듈이라고 한다.

 

모듈 : 특정 목적을 가진 함수와 자료의 모임.

 

예를들어 '라면 레시피'라는 모듈이 있다고 하자.

이 모듈안에는 다음과 같은 자료와 함수가 있는 것!

스프의 양 : 5

넣어야 하는 물의 양 : 550

쿠지라이식 라면 끓이기 : ku_ramen()

해장라면 끓이기 : sok_ramen()

 

 

02. 모듈 사용하기

 

모듈을 사용하기 위해서는 import문 사용.

 

#random 모듈 불러오기
import random

 

모듈을 사용하기 위해서는 모듈 속 사용하려는 함수/변수의 사용법을 확인해야 한다.

 

random.randrange(start, stop)  : range(start, stop) 중의 한 원소를 가지고 온다.

=> random이라는 모듈안에 randrange라는 함수가 있는 것.

=> randrange안에는 start와 stop 두 개의 변수가 들어가야 함.

 

 

모듈을 사용할 떄는 .(dot)을 쓴 후에 모듈 속 함수/변수 사용

import random

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

 

03. 모듈 만들기

 

우리가 원하는 내용이 담긴 모듈을 직접 제작 할 수 있다. 

=> .py(파이썬 파일)로 모듈을 만들어 보자!

 

 

아래와 같이 cal_math라는 파일을 만듦으로써 모듈 생성.

 

#cal_math.py

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

 

main.py에서 직접 제작한 모듈을 사용

#main.py

import cal_math

print(cal_math.plus(5,10))

 

 

 

04. 패키지

 

패키지 : 모듈을 폴더(Directory) 로 구분하여 관리하는 것.

 

왜 패키지가 필요할까?

=> 모듈을 편리하게 관리하기 위해서!

 

모듈마다 이미지를 관리하거나, 회사의 자료를 관리하거나, 뉴스를 관리하는 모듈로 구분해 볼 수 있음.

 

 

예를들어 user라는 폴더에 cal이라는 모듈이 있고, 그 안에 plus() 함수가 있다고 하자.

이 plus 함수를 사용하기 위해서는 어떻게 해야할까?

 

(1) import 사용

import로 폴더 안의 모듈을 불러오고, '모듈.함수'의 형태로 함수 사용.

#user라는 폴더 안의 cal 모듈을 불러와라
import user.cal

print(cal.plus(3,4))

 

(2) from-import 사용

from을 통해서 모듈을 불러오고, import를 이용해서 모듈안의 함수를 직접 불러온다.

from (폴더.)모듈 import 함수

단점 : plus 함수가 여러개 있을 시 충돌이 발생할 수 있다.

from user.cal import plus


#cal.plus라고 적을 필요가 없다.
print(plus(3,4))

 

 

 

05. 실습

urllib은 Python의 패키지로, 웹 페이지의 정보를 가져올 수 있다.

urllib에는 request 모듈이 있으며, request 모듈에는 urlopen이라는 함수가 있다.

해당 함수를 통해서 특정 웹사이트의 구성을 확인해보자!

 

import urllib.request as urlreq


#urlopen() : url에 접근한 결과를 얻는 함수
#read() : 결과를 해독하여 문자열로 반환
#decode() : 문자열을 특정 인코딩 방식으로 해독. (유니코드 or 아스키 코드 등)
webpage = urlreq.urlopen("https://en.wikipedia.org/wiki/Lorem_ipsum").read().decode("utf-8")

print(webpage)

 

728x90
반응형