1. 외부 모듈의 이용
📁 외부 모듈은 다른 사람들이 만들어 배포하는 모듈을 말함
1) 패키지
👾 모듈의 상위 개념으로 모듈의 집합을 의미
👾 파이썬에서 기본적으로 제공하지 않더라도 외부에서 만들어진 패키지를 이용하면 패키지에 포함된 모듈을 사용할 수 있음
2) 패키지 관리자
👾 외부 모듈을 사용하기 위해서는 우선 모듈이 포함된 패키지를 추가로 설치
👾 pip라고 불리는 패키지 관리자를 사용해서 패키지를 추가, 삭제
3) 패키지 설치
💡 보통 관심있는 분야와 관련된 모듈을 검색해서 설치
📌 맥os 에서는 터미널에 입력하여 설치
pip install package
👾 numpy 패키지는 수치해석과 통계에서 많이 사용
import numpy as np
print(np.sum([1, 2, 3, 4, 5])) # 15
👾 Beautiful Soup는 파이썬 웹 페이지 분석 모듈
# Beautiful Soup 모듈로 날씨 가져오기
from urllib import request
from bs4 import BeautifulSoup
# urlopen() 함수로 기상청의 전국 날씨 읽기
target = request.urlopen("http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=108")
# 웹페이지 분석
soup = BeautifulSoup(target, "html.parser")
# location 태그 찾기
for location in soup.select("location"):
# 내부 city, wf, tmn, tmx 태그를 찾아 출력
print("도시:", location.select_one("city").string)
print("날씨:", location.select_one("wf).string)
print("최저기온:", location.select_one("tmn").string)
print("최고기온:", location.select_one("tmx").string)
print()
'''
도시: 서울
날씨: 구름많음
최저기온: 3
최고기온: 9
도시: 인천
날씨: 구름많음
최저기온: 2
최고기온: 8
도시: 수원
날씨: 구름많음
최저기온: 2
최고기온: 10
...생략...
'''
📌 urllib는 URL 작업을 위한 여러 모듈을 모은 패키지
📌 태그를 여러개 선택할 때 select(), 한 개 선택할 때 select_one() 사용하여 값 추출
👾 Django는 다양한 기능을 제공하는 웹 개발 프레임워크, Flask는 작은 기능만을 제공하는 웹 개발 프레임워크
pip install flask
from flask import Flask
app = Flask(__name__)
@app.rout("/")
def hello():
return "<h1>Hello World!</h1>"
# @app.route() 는 데코레이터
# 맥 os 에서 Flask 코드 실행 방법
export FLASK_APP=파일 이름.py
flask run
# 터미널에 입력
⚡️ 프로그램 종료할 때는 Ctrl + C
4) 패키지 삭제
pip uninstall package
ex. pip uninstall numpy
2. 라이브러리와 프레임워크
📁 라이브러리(library) : 정상적인 제어를 하는 모듈
📁 프레임워크(framework) : 제어 역전이 발생하는 모듈
1) 라이브러리
- 개발자가 모듈의 기능을 호출하는 형태의 모듈
from math import sin, cos, tan, floor, ceil
2) 프레임워크
- 모듈이 개발자가 작성한 코드를 실행하는 형태의 모듈
ex. Flask 모듈이 제공하는 명령어를 실행하면 Flask가 내부적으로 서버를 실행한 뒤 지정한 파일을 읽어 들여
적절한 상황에 스스로 실행하게 됨
- 개발자가 만든 함수를 모듈이 실행하는 것은 제어가 역전된 것
3. 데코레이터
1) 함수 데코레이터
⚡️ 함수에 사용하는 데코레이터
➡️ 대상 함수의 앞뒤에 꾸밀 부가적인 내용 혹은 반복할 내용을 데코레이터로 정의해서 손쉽게 사용할 수 있도록 한 것
# 함수 데코레이터 생성
def test(function):
def wrapper():
print("인사가 시작되었습니다.")
function()
print("인사가 종료되었습니다.")
return wrapper
# 데코레이터를 붙여 함수를 만든다
@test
def hello():
print("hello")
# 함수를 호출
hello()
'''
인사가 시작되었습니다.
hello
인사가 종료되었습니다.
'''
[ 내용 참고 : IT 학원 강의 및 책 '혼자 공부하는 파이썬' ]
'Programming Language > Python' 카테고리의 다른 글
[Python] 클래스, 객체생성, 인스턴스 변수와 메소드, 생성자 및 소멸자 (0) | 2024.03.03 |
---|---|
[Python] 모듈 만들기, __name__, __init__.py (0) | 2024.03.03 |
[Python] 모듈(module), math, random, datetime, time (0) | 2024.03.03 |
[Python] 튜플(tuple)과 람다(lambda), 제너레이터(generator) (0) | 2024.03.02 |
[Python] 재귀함수, 피보나치 수열, 메모화, 리스트 평탄화 (0) | 2024.03.02 |