상세 컨텐츠

본문 제목

[개미의 걸음 Python 27차시] 모듈의 이해 with 라이브러리, 프레임워크

Python

by IT개미 데이터 2020. 7. 27. 23:23

본문

728x90

모듈[Module]

여러 변수와 함수를 가지고 있는 집합체

표준 모듈 파이썬에 기본적으로 내장되어 있는 모듈
외부 모듈 다른 사람들이 만들어서 공개한 모듈
서드 파티 모듈과 사용자 정의 모듈이 있음
   * 서드 파티 모듈 : 파이썬이 아닌 다른 회사나 기관에서 제공하는 모듈
   * 사용자 정의 모듈 : 사용자가 직접 만들어서 사용하는 모듈 
  • 모듈을 가져올때는 코드의 가장 위에 import 구문을 사용[이때, 파일명의 확장자(.py)는 쓰지 않음]
  • 모듈에서 일부 기능만 가져오고 싶을 때는 from구문을 사용
  • 모듈을 가져올 때 이름 충돌이 발생하는 경우나 모듈의 이름이 너무 길때, as구문을 사용
  • 모듈이 모여서 구조를 이룬 것을 패키지[Package]라고 함
import 변수이름
from 모듈이름 import 가져오고 싶은 변수/함수
import 모듈 as 사용하고 싶은 식별자

 

 

 

1. 표준 모듈

  ① random 모듈

난수[랜덤한 값]을 생성할 때 사용하는 모듈

주요 함수 설    명
random( ) 0이상 1미만 범위 사이의 float을 리턴함
uniform(min, max) min이상 max이하의 float값을 리턴함
randint(min,max) min이상 max이하의 int값을 리턴함
randrange(min,max) min이상 max미만의 int값을 리턴함
randrange(max) : 0이상 max미만의 int값을 리턴함
randrange(min,max,step) : min이상 max미만의 int값 중 step 간격으로만 추출
choice(list) 리스트 내부에 있는 요소를 랜덤하게 선택
shuffle(list) 리스트의 요소들을 랜덤하게 섞음
sample(list, k=<숫자>) 리스트의 요소 중에 k개를 뽑음

 

  ② datetime 모듈

date(날짜)와 time(시간)과 관련된 모듈

주요 함수 설    명
timedelta( )함수 특정한 시간의 이전 또는 이후를 구할 때 사용하는 함수
이 함수에는 몇 년 후를 구하는 기능은 없으므로 replace()함수를 써서 년도를 교체 
strftime( )함수 여러가지 형태의 문자열로 시간을 출력하는 함수
매개변수에 문자(한국어, 영어 등)는 사용할 수 없으므로 format( )함수를 써서 문자를 넣음

# 현재 날짜 및 시간

더보기
현재 년 now.year
현재 월 now.month
현재 일 now.day
현재 시 now.hour
현재 분 now.minute
현재 초 now.second

 

  strftime( )함수

%Y 4자리로 출력되는 연도
%y 2자리로 출력되는 연도
%m 숫자로 출력되는 월
%B 영문으로 출력되는 월
%b 요약된 영문으로 출력되는 월
%d 01~31로 출력되는 일
%w 숫자로 출력되는 요일 [ 0(일요일)시작해서 6(토요일)까지 ]
%A 영문으로 출력되는 요일
%a 요약된 영문으로 출력되는 요일
%H 00~23으로 출력되는 시간
%I 00~12으로 출력되는 시간
%p 오전, 오후를 구분해줌

 

 

  ③ date 모듈

시간과 관련된 모듈로 날짜도 처리가능하지만 일반적으로 datetime모듈을 사용

주요 함수 설    명
time.sleep(숫자)함수 '숫자'초 동안  코드 진행을 정지할 때 사용하는 함수

 

 

  ④ math 모듈 

수학과 관련된 기능들을 가지고 있는 모듈

주요 함수 설    명
sin(x) 사인값을 구하는 함수
cos(x) 코사인값을 구하는 함수
tan(x) 탄젠트값을 구하는 함수
log(x[, base]) 로그값을 구하는 함수
ceil(x) 올림을 하는 함수
floor(x) 내림을 하는 함수

# round함수

더보기

round 함수는 math모듈의 함수가 아닌 내장함수

반올림할 때 round( )함수를 사용하지만 일반적으로 생각하는 방식과는 다름

  •  round( )함수를 자세히 보면 소수점의 5를 정수부분이 홀수일때는 올리지만 짝수일때는 내림

 

 

 

 

 

2. 외부 모듈[External Module]

Beautiful Soup, Flask, Scikit-learn, Tensorflow, Django, Numpy 등이 있음

  • 각각의 모듈에 대한 내용들은 매우 방대하므로 Beautiful Soup와 Flask 모듈에 대해서만 간단하게 알아보고 추후 파이썬의 오픈소스 웹 프레임워크인 Django은 포스팅하도록 하겠습니다.
  • 외부 모듈을 설치하기 위해서는 우선, [window]+[R]키를 눌려 프로그램 실행창을 실행시킵니다.
  • cmd를 입력하여 명령 프롬프트 창을 실행시킨 후 pip install를 입력한 뒤 모듈이름을 입력합니다.

 

① BeautifulSoup

대표적인 파이썬의 웹 페이지 분석 모듈

  • request.urlopen("http://~~~")를 사용하여 원하는 웹사이트의 url을 불러들임
  • BeautifulSoup(htmx문자열, "html.parser")를 사용해 BeautifulSoup이라는 특수한 객체를 리턴함[웹 페이지 분석]
  • .select(" ")를 사용해 BeautifulSoup이라는 특수한 객체에 있는 여러개의 태그선택
  • 하나의 태그만 선택할 때는 .select_one(" ")을 사용

웹사이트에서 데이터 가져오기

# 파이썬 내에서 웹페이지 구성을 알아보는 방법

 

 

 

 

② Flask 모듈

Django에 비해 적은 기능을 제공하는 웹 개발 프레임워크

  • 가볍고 자유로운 편이라 서비스 제공에 유리한 모듈
  • Django의 경우, 형식적이고 정형화되어 있어 프로젝트에 유리한 모듈

 

 

 

 

라이브러리[library]와 프레임워크[Framework]

library 정상적인 제어를 하는 모듈
즉, 개발자가 모듈의 기능을 호출하는 형태의 모듈
framework 제어 역전[IoC, Inversion of Control]이 발생하는 모듈
즉, 모듈이 개발자가 작성한 코드를 실행하는 형태의 모듈

# 제어역전[IoC, Inversion of Control]

더보기

제어가 역전되어 실행되는 함수

개발자가 모듈의 함수를 호출하는 것이 일반적인 제어 흐름

이와 반대로 개발자가 만든 함수를 모듈이 실행하는 것을 제어 역전이라고 함

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90

관련글 더보기

댓글 영역