Python

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 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’라는 글자는 바이너리 데이터를 의미합니다.

필요한 표준모듈들을 알고 잘 활용한다면
더 빠른 코딩을 할 수 있게 될 것입니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다