1-8-1. 표준모듈 활용하여 코딩하기
파이썬은 모듈(moudule) 기능을 사용하여
코드를 분리하고 공유합니다.
이러한 모듈은 크게 두가지로 분류합니다.
표준모듈 / 외부모듈
표준모듈과 외부모듈
공통적인 사용 형식
import 모듈 이름
표준모듈
기본적으로 파이썬에 내장되어 있는 모듈을 의미합니다.
따로 설치가 필요로 하지 않습니다.
외부모듈
다른 사람들이 만들어서
공개한 모듈을 ‘외부 모듈’이라고 부릅니다.
pip install로 설치가 필요로 합니다.
표준모듈 (예시. math)
import 구문
import math
해당 문장 이후에 math라는 모듈을 사용할 수 있게 됩니다.
math. 을 입력하게 된다면
math 라는 모듈 안에
어떤 변수와 함수를 가지고 있는지 확인할 수 있습니다.
파이썬 공식문서를 통하여 표준 모듈들을 확인할 수 있습니다.
from 구문
math.cos(), math.fsum(), math.fabs() 등등을 사용할 때
fsum()이라던지 fabs()를 자주 사용할 경우가 생길 수 있습니다.
매번 math.을 앞에 붙여줘야하는 불편하는 것이 싫을 수 있습니다.
이를 해결하기 위해서 from 구문을 사용합니다.
from 모듈 이름 import 가져오고 싶은 변수 또는 함수
가져오고 싶은 변수 또는 함수에
여러 개의 변수 또는 함수를 입력할 수 있습니다.
이제 위의 from구문을 활용한다면
math를 앞에 붙이지 않고도 사용이 가능합니다.
from math import sin, cos, tan, fsum, fabs, floor, ceil print(sin(1)) print(cos(2)) print(tan(3)) # 소수점 아래 무시(버림) print(floor(2.5)) # 무조건 올림 print(ceil(2.5))
math의 모든기능(*) 가져오기
from math import *
모듈 내의 모든 기능을 가져오는 것을 의미합니다.
as 구문
모듈이 너무 길어서 짧게 사용하고 싶은 경우
import 모듈 as 사용하고 싶은 식별자
활용예시
import math as ma print(ma.sin(1))
random 모듈
import random
import random print("random 모듈") # random(): 0<= x <1.0 사이의 float 리턴 print("random():", random.random()) # uniform(min, max): 지정된 범위의 float 리턴 print("uniform(10, 20):", random.uniform(10, 20)) # randrange() : 지정된 int를 리턴 # randrange(max) : 0부터 max값까지의 값을 리턴 # randrange(min, max) : min 부터 max까지의 값을 리턴 print("randrange(10):", random.randrange(10)) #choice(list): 리스트 내부에 잇는 요소를 랜덤하게 리턴 print("choice([1, 2, 3, 4, 5]):", random.choice([1, 2, 3, 4, 5])) # shuffle(list): 리스트 요소를 랜덤하게 섞기 print("shuffle[1, 2, 3, 4, 5]", random.shuffle([1, 2, 3, 4, 5])) # sample(list, k=숫자): 리스트 요소 중에 k개를 뽁기 print("sample([1, 2, 3, 4, 5], k=2)", random.sample([1, 2, 3, 4, 5], k = 3))
sys 모듈
import sys # 명령 매개변수 출력 print(sys.argv) print("---") # 컴퓨터 관련 정보 출력 print("getwindowsversion:()", sys.getwindowsversion()) print("---") print("copyright()", sys.copyright) print("---") print("version:", sys.version)
os 모듈
운영체제와 관련된 기능들
# 모듈을 읽어 들이기 import os # 기본 정보 print("현재 운영체제", os.name) print("현재 폴더:", os.getcwd()) print("현재 폴더 내부의 요소:", os.listdir()) # 폴더 만들고 제거하기 os.mkdir("hello") os.rmdir("hello") # 파일 생성하고 이름 변경 with open("original.txt", "w") as file: file.write("hello") os.rename("original.txt", "newname.txt") # 파일을 제거 os.remove("newname.txt") #시스템 명령어 실행 os.system("dir")
datetime 모듈
datetime 모듈은 날짜(date)와 시간(time)과 관련된 모듈로
날짜 형식을 만들 때 자주 사용되는 코드로 구성되어 있습니다.
# 모듈 읽기 import datetime # 현재시간 구하고 출력하기 print("현재시간") now = datetime.datetime.now() print(now.year, "년") print(now.month, "월") print(now.day, "일") print(now.hour, "시") print(now.minute, "분") print(now.second, "초") print()
다양한 시간처리
# 모듈 import datetime now = datetime.datetime.now() # 특정 시간 이후의 시간 구하기 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("특정 시간 요소 교체하기") print("now.replace()로 시간 변경하기") output = now.replace(year=(now.year + 1), day=(now.day + 1)) print(output)
time 모듈
import time
유닉스 타임은 특정 시간 동안 정지하는 기능등으로 코드 동작과 관련된 시간을 설정할 수 있습니다.
import time print("5초동안 정지합니다.") time.sleep(5) print("프로그램을 종료합니다.")
urllib 모듈
urllib 모듈은 ‘URL을 다루는 라이브러리’ 라는 의미 입니다.
‘URL’은 Uniform Resource Locator를 의미합니다.
간단하게는 웹 브라우저의 주소창에 입력하는 주소라고 생각하시면 됩니다.
# 모듈 읽기 from urllib import request #urlopen() 함수로 페이지를 읽습니다. target = request.urlopen("https://google.com") output = target.read() print(output)
실행결과로 b’라는 글자는 바이너리 데이터를 의미합니다.
필요한 표준모듈들을 알고 잘 활용한다면
더 빠른 코딩을 할 수 있게 될 것입니다.