좀더 편하게 해줄 모듈!!
파이썬은 모듈 이라는 기능을 활용해 코드를 분리하고 공유한다.
- 표준 모듈 : 파이썬에 기본적으로 내장되어 있는 모듈
- 외부 모듈 : 다른 사람들이 만들어서 공개한 모듈
import 모듈 이름
from 모듈 이름 import 가져오고 싶은 변수 또는 함수
만약 모듈의 모든 기능을 가져오겠다면 import 뒤에 * 을 쓰면 된다. 하지만 모두 가져올 경우 식별자 이름에서 충돌이 발생할 수 있으니 from 구문을 사용할 때에는 최대한 필요한 것만 가져오자
from 모듈 이름 as 사용하고 싶은 식별자
모듈과 같은 이름으로 파일을 저장하지 말기!!
대표 기능
- sin, cos, tan(x)
- log(x[, base]) : 로그값 구하기
- ceil(x) : 올림
- floor(x) : 내림
파이썬에서 반올림 기능을 해주는 round()는 우리가 아는 정확한 반올림이 아니다.
정수가 짝수일때 소수점이 5라면 내리고 / 정수가 홀수일떄 소수점이 5라면 올린다.
랜덤한 값 생성할때 사용한다.
import random
- random() : 0.0 <= x < 1.0 사이의 float값 리턴
- uniform(min, max) : 지정한 범위 사이의 float값 리턴
- randrange() : 지정한 범위의 int를 리턴
- choice(list) : 리스트 내부의 요소를 랜덤하게 선택 (1개)
- shuffle(list) : 리스트 내부의 요소들을 랜덤하게 섞는다.
- sample(list, k=<숫자>) : 리스트의 요소 중에 k개를 뽑는다.
시스템과 관련된 정보를 갖고 있는 모듈 (명령 매개변수를 받을 때 많이 사용된다)
운영체제와 관련된 기능을 가진 모듈
- 새로운 폴더 생성 / 제거
- 폴더 내 파일 파악
- 새로운 파일 생성 / 제거
- ...
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)
->
# 현재 시각 출력하기
2019년
4월
23일
3시
51분
41초
# 시간 출력 방법
2019.04.23 03:51:41
2019년 4월 23일 3시 51분 41초
2019년 04월 23일 03시 51분 41초
위의 output_a 처럼 strftime() 함수를 사용하면 시간을 형식에 맞춰 출력할 수 있다.! 다만 한국어 등의 문자는 매개변수에 넣을 수 없기 때문에 output_b와 output_c와 같은 형식을 사용했다.
# 모듈 읽기
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로 시간 더하기
2019년 05월 01일 03시 39분 26초
# now.replace()로 1년 더하기
2022년 04월 23일 02시 38분 25초
시간과 관련된 기능
특정 시간동안 코드 진행 정지
time.sleep(5)
print("쨘!")
->
# 5초뒤에 다음 문구 출력됨
쨘!
"URL을 다루는 라이브러리"
URL = Uniform Resource Locator / 네트워크의 자원이 어디에 위치하는지 확인할때 사용한다.
-> 웹 브라우저의 주소창에 입력하는 주소!
pip3 install
유명한 파이썬의 웹 페이지 분석 모듈
"이용법은 책 보고 파악하자!!"
flask.pocoo.org
일반적으로 파이선으로 웹 개발을 할 때는 Django(장고) 또는 Flask(플라스크) 등의 모듈을 사용한다!
- Django : 매우 다양한 기능을 제공하는 웹 개발 프레임워크
- Flask : 작은 기능만을 제공하는 웹 개발 프레임워크
from flask import Flask
app = Flask(__name__)
@app.rout("/") # 이부분은 데코레이터 라고 부른다.
def hello():
return "<h1>Hello World!<h1>"
->
run 했을때 나오는 주소를 주소창에 검색하면 새로운 페이지에 Hello World! 가 뜨는걸 확인할 수 있다.
위의 Flask와 BeautifulSoup을 사용해 현재 날씨를 알려주는 웹 페이지를 만들 수 있다.!
- 라이브러리 : 정상적인 제어를 하는 모듈
- 프레임워크 : 제어 역전이 발생하는 모듈
라이브러리
개발자가 모듈의 기능을 호출하는 형태
- math
프레임워크
모듈이 개발자가 작성한 코드를 실행하는 형태
- Flask
: 내부에 함수만 정의했지 직접적으로 무언가 진행하는 코드는 적은것이 없다!
@app.route() 형태 설명 여기서 나옴!
- 함수 데코레이터
- 클래스 데코레이터
함수 데코레이터는 함수에 사용되는 데코레이터 이다.
: 함수의 앞뒤에 꾸밀 부가적인 내용 혹은 반복할 내용을 데코레이터로 정의해서 쉽게 사용할 수 있도록 한 것