Python 101 - 9장. 표준라이브러리

hyukim·2020년 5월 27일
0

Python 101

목록 보기
9/10
post-thumbnail

파이썬 표준 라이브러리

파이썬에서는 기본 기능들 이외에도 프로그래밍하는데 필요한 클래스, 메소드, 상수들을 모듈로 지원하는데 이를 “표준라이브러리(Standard Library)”라고 한다. 파이썬 표준 라이브러리는 엄청나게 양이 많으니 자세한 정보는 https://docs.python.org/3/library/ 를 참고하면 됨. 오늘은 그 중에서 많이 쓰이는 math, random, datetime 라이브러리들에 대해 알아보겠다.

math

이름에서 직관적으로 알 수 있듯이 수학에 관련된 라이브러리다. 삼각함수, 지수, 로지스틱 함수, 대수 관련 기능들이 많이 있다.

  • math.ceil(x) : x를 올림하여 정수로 리턴한다.
  • math.fabs(x) : x의 절대값을 실수로 리턴한다.
  • math.floor(x) : x를 내림하여 정수로 리턴한다.
  • math.gcd(a, b) : 정수 a와 b의 최대공약수를 정수로 리턴한다.
  • math.log(x[, base]) : base를 밑으로 하는 x의 로그를 구한다. base는 없으면 자연상수 e로 함
  • math.log10(x) : 밑을 10으로 하는 로그를 구함
  • math.sqrt(x) : x의 제곱근을 구함
import math

math.ceil(12.5)		# 13
math.floor(1.3)		# 1
math.fabs(-151)		# 151.0
math.gcd(120, 42)	# 6
math.log(8, 2)		# 3.0
math.log10(100)		# 2.0
math.sqrt(122)		# 11.045361017187261

datetime

날짜와 시간을 다루는 라이브러리이다.

date : 날짜에 관련된 클래스

  • date(year, month, day)로 선언 가능
  • date.today() : 오늘 날짜 나옴
  • date() -/+ date()하면 timedelta()타입의 값 나옴
  • date.year : 해당 객체의 년도 출력, 1~9999
  • date.month : 해당 객체의 월 출력, range(1, 12)
  • date.day : 해당 객체의 일 출력, 1~해당 월의 말일
from datetime import date as d

a = d.today()		# datetime.date(2019, 11, 6)
b = d(2019, 10, 16)	# datetime.date(2019, 10, 16)
a.year				# 2019
a.month				# 11
a.day				# 6

a - b				# datetime.timedelta(days=21)

time : 시간에 관련된 클래스

  • time(hour, min, sec, milsec)로 선언 가능 빈 값은 0으로 초기화
  • time.hour : 해당 객체의 시간 출력, range(24)
  • time.minute : 해당 객체의 분 출력, range(60)
  • time.second : 해당 객체의 초 출력, range(60)
  • time.microsecond : 해당 객체의 밀리초 출력, range(1000000)
from datetime import time as t

a = t(19, 23, 13)	# datetime.time(19, 23, 13)
b = t(11, 10, 16)	# datetime.time(11, 10, 16)

a.hour				# 19
a.minute			# 23
a.second			# 13
a.microsecond		# 0

a > b				# True

datetime : 날짜와 시간에 관련된 클래스

  • datetime.today() : 현재 날짜, 시간이 나옴 (datetime.now()와 같은 결과)
  • datetime.weekday() : 요일 정보를 숫자로 출력함 (일: 0, 월: 1, 화: 2, 수: 3, 목: 4, 금: 5, 토: 6)
from datetime import datetime as dt

a = dt.today()						# datetime.datetime(2019, 11, 6, 19, 25, 12, 634)
b = dt(2019, 10, 16, 14, 11, 59)	# datetime.datetime(2019, 10, 16, 14, 11, 59, 0)
a.year				# 2019
a.month				# 11
a.day				# 6
a.hour				# 19
a.minute			# 25
a.second			# 12
a.microsecond		# 634

a - b				# datetime.timedelta(seconds=18914, microseconds=748890)
b > a				# True

timedelta : date, time, datetime의 차이 값을 나타내는 클래스

  • +, - 연산으로 시간이나 날짜의 차이 값으 구함
  • timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0) 으로 초기화 가능
from datetime import date as d
from datetime import datetime as dt
from datetime import timedelta as td

a = dt.today()						# datetime.datetime(2019, 11, 6, 19, 25, 12, 634)
a - b								# datetime.timedelta(seconds=18914, microseconds=748890)
d.today() + td(days=10)				# datetime.date(2019, 11, 16)

random

random은 난수 생성을 위한 도구를 제공한다.

  • random.smaple(candidates, pop) : sequence나 set타입인 후보(candidates)들 중에서 pop(int) 개수만큼 중복 없이 추출한다. candidates의 크기가 pop보다 작다면 ValueError를 일으킨다. candidates는 중복 값이 있는 것도 허용한다.
  • random.choice(iter) : 이터레이터인 iter중에서 하나를 랜덤하게 리턴한다
  • random.randrange(n) : range(n)에서 하나의 수를 뽑는다.
import random
radnom.choice(['alpha', 'bravo', 'charlie'])
# 'bravo'
random.sample(range(100), 10)  # [16, 54, 42, 71, 8, 1, 29, 7, 70, 62]
random.randrange(11)  # 8
profile
💪 🥩 🍺 ✈ 💻

0개의 댓글