혼공파 : 모듈

채록·2021년 1월 9일
0

짜투리

목록 보기
10/26

들어가는 말

좀더 편하게 해줄 모듈!!

I. 정의

파이썬은 모듈 이라는 기능을 활용해 코드를 분리하고 공유한다.

  • 표준 모듈 : 파이썬에 기본적으로 내장되어 있는 모듈
  • 외부 모듈 : 다른 사람들이 만들어서 공개한 모듈

II. 사용법

import 모듈 이름

1. 모듈의 일부 기능만 가져오기

from 모듈 이름 import 가져오고 싶은 변수 또는 함수

만약 모듈의 모든 기능을 가져오겠다면 import 뒤에 * 을 쓰면 된다. 하지만 모두 가져올 경우 식별자 이름에서 충돌이 발생할 수 있으니 from 구문을 사용할 때에는 최대한 필요한 것만 가져오자


2. 모듈 이름 새로 짓기

from 모듈 이름 as 사용하고 싶은 식별자

3.주의!!

모듈과 같은 이름으로 파일을 저장하지 말기!!



III. 표준 모듈


1. math 모듈

대표 기능

  • sin, cos, tan(x)
  • log(x[, base]) : 로그값 구하기
  • ceil(x) : 올림
  • floor(x) : 내림

주의!! : 반올림 round()

파이썬에서 반올림 기능을 해주는 round()는 우리가 아는 정확한 반올림이 아니다.
정수가 짝수일때 소수점이 5라면 내리고 / 정수가 홀수일떄 소수점이 5라면 올린다.



2. random 모듈

랜덤한 값 생성할때 사용한다.

import random
  • random() : 0.0 <= x < 1.0 사이의 float값 리턴
  • uniform(min, max) : 지정한 범위 사이의 float값 리턴
  • randrange() : 지정한 범위의 int를 리턴
  • choice(list) : 리스트 내부의 요소를 랜덤하게 선택 (1개)
  • shuffle(list) : 리스트 내부의 요소들을 랜덤하게 섞는다.
  • sample(list, k=<숫자>) : 리스트의 요소 중에 k개를 뽑는다.


3. sys 모듈

시스템과 관련된 정보를 갖고 있는 모듈 (명령 매개변수를 받을 때 많이 사용된다)



4. os 모듈

운영체제와 관련된 기능을 가진 모듈

  • 새로운 폴더 생성 / 제거
  • 폴더 내 파일 파악
  • 새로운 파일 생성 / 제거
  • ...


5. datetime 모듈

datetime 모듈 예시1

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

# 모듈 읽기
import datetime

# 현재 시간 구하고 출력하기
now = datetime.datetime.now()
print(now.year, "년")
print(now.month, "월")
print(now.day, "일")
print(now.hour, "시")
print(now.minute, "분")
print(now.second, "초")

# 시간 출력 방법
output_a = now.strftime("%y.%m.%d %H:%M:%S")
output_b = "{}년 {}월 {}일 {}시 {}분 {}초".format(now.year,\
    now.month,\
    now.day,\
    now.hour,\
    now.minute,\
    now.second)
output_c = now.strftime("%Y{} %m{} %d{} %H{} %M{} %S{}").format(*"년월일시분초")
# 문자열, 리스트 등 앞에 *을 붙이면 요소 하나하나가 매개변수로 지정된다.
print(output_a)
print(output_b)
print(output_c)

->
# 현재 시각 출력하기
201942335141# 시간 출력 방법
2019.04.23 03:51:41
20194233514120190423035141

strftime()

위의 output_a 처럼 strftime() 함수를 사용하면 시간을 형식에 맞춰 출력할 수 있다.! 다만 한국어 등의 문자는 매개변수에 넣을 수 없기 때문에 output_b와 output_c와 같은 형식을 사용했다.


datetime 모듈 예시2 : 시간 처리하기

# 모듈 읽기
import datetime

# 특정 시간 이후의 시간 구하기
print("#datetime.timedelta로 시간 더하기")
after = now + datetime.timedelta(\
    weeks=1,\
    days=1,\
    hours=1,\minutes=1,\
    seconds=1)
print(after.strftime("%Y{} %m{} %d{} %H{} %M{} %S{}").format(*"년월일시분초"))

# 특정 시간 요소 교체하기
print("# now.replace()로 1년 더하기")
ourput = now.replace(year=(now.year+1))
print(output.strftime("%Y{} %m{} %d{} %H{} %M{} %S{}").format(*"년월일시분초"))

->
# datetime.timedelta로 시간 더하기
20190501033926# now.replace()로 1년 더하기
20220423023825


6. time 모듈

시간과 관련된 기능

time.sleep()

특정 시간동안 코드 진행 정지

time.sleep(5)
print("쨘!")

->
# 5초뒤에 다음 문구 출력됨
쨘!


7. urllib 모듈

"URL을 다루는 라이브러리"
URL = Uniform Resource Locator / 네트워크의 자원이 어디에 위치하는지 확인할때 사용한다.
-> 웹 브라우저의 주소창에 입력하는 주소!




Ⅳ. 외부 모듈

1. pip : 외부 모듈을 설치할때 사용하는 명령어

pip3 install

외부 모듈 예 : BeautifulSoup 모듈

유명한 파이썬의 웹 페이지 분석 모듈

"이용법은 책 보고 파악하자!!"


2. Flask 모듈

flask.pocoo.org

일반적으로 파이선으로 웹 개발을 할 때는 Django(장고) 또는 Flask(플라스크) 등의 모듈을 사용한다!

  • Django : 매우 다양한 기능을 제공하는 웹 개발 프레임워크
  • Flask : 작은 기능만을 제공하는 웹 개발 프레임워크

Flask 설치

from flask import Flask
app = Flask(__name__)

@app.rout("/") # 이부분은 데코레이터 라고 부른다.
def hello():
    return "<h1>Hello World!<h1>"
    
->
run 했을때 나오는 주소를 주소창에 검색하면 새로운 페이지에 Hello World! 가 뜨는걸 확인할 수 있다.

3. 웹 스크래핑

위의 Flask와 BeautifulSoup을 사용해 현재 날씨를 알려주는 웹 페이지를 만들 수 있다.!




Ⅴ. 라이브러리와 프레임워크


  • 라이브러리 : 정상적인 제어를 하는 모듈
  • 프레임워크 : 제어 역전이 발생하는 모듈

라이브러리
개발자가 모듈의 기능을 호출하는 형태

  • math

프레임워크
모듈이 개발자가 작성한 코드를 실행하는 형태

  • Flask
    : 내부에 함수만 정의했지 직접적으로 무언가 진행하는 코드는 적은것이 없다!



Ⅵ. 함수 데코레이터

@app.route() 형태 설명 여기서 나옴!

  • 함수 데코레이터
  • 클래스 데코레이터


1. 함수 데코레이터 : 기본

함수 데코레이터는 함수에 사용되는 데코레이터 이다.
: 함수의 앞뒤에 꾸밀 부가적인 내용 혹은 반복할 내용을 데코레이터로 정의해서 쉽게 사용할 수 있도록 한 것

profile
🍎 🍊 🍋 🍏 🍇

0개의 댓글