1. 모듈  module

📁  여러 변수와 함수를 가지고 있는 집합체

📁  파이썬에 기본적으로 내장되어 있는 모듈을 '표준 모듈', 다른 사람들이 만들어 공개한 모듈을 '외부 모듈'

 


 

1) 모듈의 사용

👾 반드시 같은 디렉토리에 있어야 함
👾 모듈에 저장된 함수를 사용하는 방법
      A. 모듈 전체를 가져오는 방법
          - 모듈에 저장된 '모든' 클래스나 함수를 사용하고자 할 때
             ex. import 모듈

# import 모듈이름으로 불러옴

import converter

miles = converter.kilometer_to_miles(150)  # 모듈.함수() 형식으로 호출
print(f'150km={miles}miles')  # 150km=93.20565miles

pounds = converter.gram_to_pounds(1000)
print(f'1000g={pounds}pounds')  # 1000g=2.20462pounds

 

 

      B. 모듈에 포함된 함수 중에서 특정 함수만 골라서 가져오는 방법
            ex. from 모듈 import 함수
                   from 모듈 import 함수1, 함수2
                   from 모듈 import *

from converter import kilometer_to_miles  # 모듈은 가져오지 않고 특정 함수만 가져옴

miles = kilometer_to_miles(150)  # 모듈명을 명시하지 않고 사용
print(f'150km={miles}miles')  # 150km=93.20565miles

print()
from converter import *  # 모듈은 가져오지 않고 모듈의 모든 함수 가져옴

miles = kilometer_to_miles(150)  # 모듈명을 명시하지 않고 사용
print(f'150km={miles}miles')

pounds = gram_to_pounds(1000)
print(f'1000g={pounds}pounds')  # 모듈명을 명시하지 않고 사용

 


 

2) 별명 사용

👾  모듈이나 함수를 import 하는 경우에 원래 이름 대신 별명 alias를 지정하고 사용
👾  모듈이나 함수의 이름이 긴 경우에 주로 짧은 별명을 지정하고 긴 본래 이름 대신 사용
👾  별명을 지정할 때는 as 키워드를 사용

import converter as cvt  # converter 모듈에 cvt라는 별명을 지정

miles = cvt.kilometer_to_miles(150)  # 별명을 이용해서 함수 사용
print(f'150km={miles}miles')

pounds = cvt.gram_to_pounds(1000)
print(f'1000g={pounds}pounds')

print()
from converter import kilometer_to_miles as k_to_m  # 함수에도 별명을 지정 가능

miles = k_to_m(150)  # 함수 이름 대신 별명을 사용
print(f'150km={miles}miles')

 


 

2. math 모듈

📁  말 그대로 수학과 관련된 기능을 가지고 있다

변수 또는 함수 설명
원주율 pi 더 정확한 파이 값을 사용하기 위해
ceil() & floor() 전달된 값을 정수로 올림 처리하거나 내림 처리
trunc() 전달된 값을 정수로 절사, 양수를 처리할 때는 차이가 없지만
음수를 처리할 때는 결과의 차이가 있다
sqrt() 제곱근 구함
pow() 제곱을 구함

 

import math  # import 후 사용

# 1) 원주율 pi
print(math.pi)  # 3.141592653589793

# 2) ceil() 함수와 floor() 함수
print(math.ceil(1.1))  # 2 / 정수로 올림 처리
print(math.floor(1.9))  # 1 / 정수로 내림 처리

# 3) trunc() 함수
print(math.trunc(-1.9))  # -1 / 절사이므로 소수점 이하를 잘라버림
print(math.floor(-1.9))  # -2 / 내림이므로 -1.9 보다 작은 정수로 내림

# 4) sqrt() 함수
print(math.sqrt(25))  # 5.0 / 루트 25를 의미

 

3. random 모듈

📁  난수 random number 를 생성하는 모듈
📁  난수를 통해서 간단한 게임을 제작할 수 있고 확률 처리도 할 수 있다

변수 또는 함수 설명
randint() 전달하는 두 인수 사이의 정수를 임의로 생성
randrange() range() 함수는 특정범위의 정숫값들을 모두 생성할 수 있지만,
randrange() 함수는 그 특정 범위에 속한 정수중 하나만 임의로 생성
random() 0이상 1미만 범위에서 임의의 실수를 생성
0이상 1미만 범위를 백분율로 환산하면 0%이상 100%미만이기 때문에 확률을 처리할 때도 사용
choice(list) 전달된 시퀀스 자료형에 속한 요소 중에서 하나를 임의로 반환
sample(list, k=<숫자>) 전달된 시퀀스 자료형에 속한 요소 중 지정된 개수의 요소를 임의로 반환
반환 결과는 리스트 list 자료형이며 중복없이 임의의 요소가 선택
shuffle(list) 전달된 시퀀스 자료형에 속한 요소의 순서를 임의로 조정하여 다시 재배치하는 함수
호출하면 실제 전달된 시퀀스 자료형의 순서가 재배치

 

import random

# 1) randint() 함수
print(random.randint(1,10))  # 1이상 10이하의 정수

# 2) randrange() 함수
print(random.randrange(10))  # 0이상 10미만의 정수
print(random.randrange(1,10))  # 1이상 10미만의 정수
print(random.randrange(1,10,2))  # 1이상 10미만의 홀수

# 3) random() 함수
print(random.random())  # 0.1859815803780659

# 50% 확률로 '안녕하세요' 출력
if random.random() < 0.5:
    print('안녕하세요')

rand = random.randint(1,2)
print(rand)
if rand == 1:
    print('안녕하세요')

# 4) choice() 함수
seasons = ['spring', 'summer', 'fall', 'winter']
print(random.choice(seasons))  # fall

idx = random.randint(0, len(seasons) - 1)
print(seasons[idx])

# 5) sample() 함수
print(random.sample(range(1, 46), 6))  # [36, 4, 14, 35, 12, 16]

seasons = ['spring', 'summer', 'fall', 'winter']
print(random.sample(seasons, 3))
seasons = ['summer', 'summer', 'summer', 'winter']
print(random.sample(seasons, 3))

# 6) shuffle() 함수
my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)
print(my_list)  # [4, 2, 3, 1, 5]

 


 

4. sys 모듈

📁  시스템과 관련된 정보를 가지고 있는 모듈

📁  명령 매개변수를 받을 때 많이 사용

import sys

# 명령 매개변수 출력
print(sys.argv)  # ['/Users/Desktop/pycharm/pythonProject/book/1.py']
print("----")

# 컴퓨터 환경과 관련된 정보 출력
print("copyright:", sys.copyright)  
print("----")
print("version:", sys.version)
'''
copyright: Copyright (c) 2001-2023 Python Software Foundation.
All Rights Reserved.
... 생략 ...
----
version: 3.10.13 (main, Sep 11 2023, 08:16:02) [Clang 14.0.6 ]
'''

# 프로그램 강제 종료
sys.exit()

 


 

5. os 모듈

📁  운영체제와 관련된 기능을 가진 모듈

import os

# 기본 정보 출력
print("현재 운영체제:", os.name)
print("현재 폴더:", os.getcwd())
print("현재 폴더 내부의 요소:", os.listdir())
'''
현재 운영체제: posix
현재 폴더: /Users/Desktop/pycharm/pythonProject/book
현재 폴더 내부의 요소: ['1.py']
'''
# 폴더 만들고 제거(폴더가 비어있을 때만 가능)
os.mkdir("hello")
os.rmdir("hello")

# 파일 생성하고 파일 이름 변경
with open("original.txt", "w") as file:
    file.write("hello")
os.rename("original.txt", "new.txt")

# 파일 제거
os.remove("new.txt")

# 시스템 명령어 실행
os.system("dir")

 


 

6. datetime 모듈

📁  날짜와 시간 데이터를 처리할 때 사용

변수 또는 함수 설명
now() 시스템의 현재 날짜와 시간을 반환
date() 특정 날짜를 반환
time() 특정 시간을 반환
날짜/시간 관련 필드값 특정 날짜에 원하는 데이터만 추출하고자 할때 이용
timedelta() 날짜 / 시간 데이터의 연산을 위하여 사용
total_seconds() 어떤 기간에 포함된 총 시간의 초 seconds 로 반환

 

import datetime

# 1) now() 메소드
present = datetime.datetime.now()
print(present)

# 2) date() 함수
birthday = datetime.date(2014, 8, 25)
print(birthday)  # 2014-08-25

# 3) time() 함수
wake = datetime.time(10, 48, 0)
print(wake)  # 10:48:00

# 4) 날짜 / 시간 관련 필드값
today = datetime.datetime.now()
print(today.year)  # 년도
print(today.month)  # 월
print(today.day)  # 일
print(today.hour)  # 시
print(today.minute)  # 분
print(today.second)  # 초

# 5) timedelta() 함수
# 1주 : timedelta(weeks=1)
# 1일 : timedelta(days=1)
# 1시간 : timedelta(hours=1)
# 1분 : timedelta(minutes=1)
# 1초 : timedelta(seconds=1)

today = datetime.datetime.now()
yesterday = today - datetime.timedelta(days=1)  # 어제 구함
tomorrow = today + datetime.timedelta(days=1)  # 내일 구함
print(yesterday)
print(tomorrow)

# 6) total_seconds() 메소드
date1 = datetime.date(2020, 8, 25)
date2 = datetime.date(2020, 8, 26)
print(date2 - date1)  # 1 day, 0:00:00
print((date2 - date1).total_seconds())  # 86400.0 = 60초 * 60분 * 24시간

 


 

7. time 모듈

📁  시간과 관련된 기능 처리

변수 또는 함수 설명
time() 1970년 1월 1일 0시 0분 0초 부터 현재까지 경과된 시간 timestamp을 반환
소수점 이하는 마이크로 초를 의미
ctime() 인수로 전달된 시간 timestamp을 형식에 갖춰 반환
strftime() 인수로 전달된 날짜와 지시자를 이용하여 형식을 갖춘 날짜 데이터가 문자열로 반환
sleep() 인수로 전달된 초 second 만큼 시스템을 일시 정지

 

import time

# 1) time() 함수
print(time.time())  # 1645240996.2733545

# 2) ctime() 함수
print(time.ctime(time.time()))  # Sat Feb 19 12:23:16 2022

# 3) strftime() 함수
# 년 : %y : 2자리 날짜로 표시
# 년 : %Y : 4자리 날짜로 표시
# 월 : %m : 2자리 숫자로 표시 (01 ~ 12)
# 월 : %b : 3자리 영문으로 표시 (Jan ~ Dec)
# 월 : %B : 전체 영문으로 표시 (January ~ December)
# 일 : %d : 2자리 숫자로 표시 (01 ~ 31)
# 요일 : %a : 3자리 영문으로 표시 (Sun ~ Sat)
# 요일 : %A : 전체 영문으로 표시 (Sunday ~ Saturdy)
# 시 : %l : 12시간제로 표시 (01 ~ 12)
# 시 : %H : 24시간제로 표시 (00 ~ 23)
# 분 : %M : 2시간제로 표시 (00 ~ 59)
# 초 : %S : 2시간제로 표시 (00 ~ 59)
# 오전 / 오후 : %p : AM 또는 PM
print(time.strftime('%Y-%m-%d %H:%M:%S'))

# 4) sleep() 함수
time.sleep(1)

 


 

8.  urllib 모듈

📁  URL을 다루는 라이브러리

📁  URL : Uniform Rssource Locator, 네트워크의 자원이 어디에 위치하는지 확인할 때 사용하는 것

       ▶️  웹 브라우저의 주소창에 입력하는 주소

from urllib import request

# urlopen() 함수로 구글 메인페이지를 읽습니다
target = request.urlopen("https://google.com")
output = target.read()

# 출력합니다
print(output)

'''
b'<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" 
lang="ko"><head><meta content="text/html; charset=UTF-8" 
... 생략 ...
'''

 

 

 

 

 

[ 내용 참고 : IT 학원 강의 및 책 '혼자 공부하는 파이썬' ]

+ Recent posts