16-1. 들어가며


  • 학습 목표
    • 원하는 모듈과 패키지를 불러와 사용하기
    • 라이브러리와 프레임워크의 차이점 설명하기


16-2. import로 모듈 가져오기


모듈, 패키지, 라이브러리의 관계

  • 모듈(module): .py 확장자를 가진 파일(변수, 함수, 클래스, 실행 가능한 코드 등)
  • 패키지(package): 모듈 여러 개
  • 라이브러리(library): 여러 패키지와 모듈을 모은 것

라이브러리 ≥ 패키지 ≥ 모듈


표준 모듈 (기본 내장 모듈)

  • 표준 모듈 : 파이썬 내장 모듈
  • 외부 모듈 : 개발자들이 새로 만든 모듈

표준 모듈 : random, math, time, keyword 등

import [모듈] (as [변경할 변수])
  • random 모듈
    • 난수 발생 모듈(0~1 사이 무작위 float 자료형의 수)
    • 함수 사용 시에는 -> 모듈.함수()
    • 함수 종류
      • random()
      • 무작위의 int 자료형 출력하는 randint(a, b) (a<=N<=b를 만족하는 임의 정수 N 반환)
      • 출력값 고정 함수 seed(시드값)

  • math 모듈

    • 수학 관련 모듈
    • 출력값은 float 자료형
    • () 없이 입력해야 함!
    • 상수
      • 원주율(pi)
      • 자연 상수(e)

    • 함수 종류
      • pow(n, x) : nx를 계산
        • **와의 차이는? : pow는 float형으로 출력한다!
      • sqrt() : 제곱근
      • factorial() : 팩토리얼(계승)
      • 올림 함수, 내림 함수 : int형!
        • 올림 함수는 ceil, 내림 함수는 floor 사용
        • 올림 함수는 수직선에서 오른쪽으로 올려주기, 내림 함수는 수직선에서 왼쪽으로 내려주기

    • round() : 파이썬 기본 내장 함수
      • 반올림 함수(math 모듈 ❌❌❌)
      • 특징 : 반올림 할 자리의 수가 5일 때 앞자리가 짝수 숫자면 내림!, 홀수면 올림!

  • time 모듈
    • sleep() : 지연 함수(sleep(a)를 쓰면 프로그래밍 a초 지연)
    • localtime() : 시간 출력 함수
    • 9가지 내용의 튜플로 출력
      • 년도 : tm_year
      • 월(1~12) : tm_mon
      • 일 : tm_day
      • 시(0~23) : tm_hour
      • 분 : tm_min
      • 초 : tm_sec
      • 몇번째 요일(월:0~일:6) : tm_wday
      • 올해의 몇번째 날 : tm_yday
      • 썸머타임의 여부: tm_isdst:-1,0,1
    • 필요한 인덱스로 슬라이싱 가능 : time.localtime()[:3]

  • keyword 모듈
    • 키워드를 출력하거나 그 값이 키워드인지 확인 가능
    • kwlist : 예약어를 리스트로 출력하는 함수(() 안 붙인다!)
    • iskeyword() : 해당 값이 키워드인지 확인하는 함수

모듈을 불러오는 방법

from import: 모듈 일부분만 가져오기

from 모듈 import 일부분
  • 필요한 부분이 변수여도, 함수여도 가져오기 가능!
    ex) math 모듈에서 pi 변수만 가져오기

    from math import pi
    pi

    ex) 여러 개의 변수, 함수 가져오기

    from math import e, pi, pow
    pi, e, pow(2, 6)
  • from import의 또 다른 기능

    • 모듈의 모든 변수, 함수, 클래스 가져옴.
    from 모듈 import *
  • : 이 기호는 대부분 모든 것을 가져온다는 뜻이 있음!

from import as: 모듈 일부분만 가져오기 + 키워드

  • as 키워드 사용
from 모듈 import 변수 as 이름
from 모듈 import 함수 as 이름
from 모듈 import 클래스 as 이름
  • 함수나 변수 여러 개를 가져왔을 때 각각 이름 지정하려면?
    • 각 변수, 함수, 클래스 등을 ,로 구분해 as를 여러 개 지정할 수 있다!
    from 모듈 import 변수 as 이름1, 함수 as 이름2, 클래스 as 이름3


16-3. import로 패키지 가져오기


패키지(package)

  • 모듈 묶음
  • 패키지에 들어있는 모듈도 import로 가져옴
import 패키지
import 패키지.모듈
import 패키지.모듈1, 패키지.모듈2
패키지.모듈.변수
패키지.모듈.함수()
패키지.모듈.클래스()

os 패키지

  • os 패키지에 path 모듈 부르기 : join() 함수 사용(join(a, b) | a는 경로, b는 파일명)
import os.path
new_path = os.path.join("/A/B/C", "file.py")  # 패키지.모듈.함수()
print("join(): " + new_path)
  • as 키워드 사용
    • os.path를 p로 변경한 코드
      from os import path as p
      new_path = p.join("folder", "subfolder", "file.txt")  # join 함수 사용
      print("join(): " + new_path)


16-4. 라이브러리와 프레임워크 설명


라이브러리와 프레임워크(Library and Framework)

  • 라이브러리

    • 여러 패키지와 모듈을 모아둔 것
    • 특정 기능에 대한 도구 집합
  • 프레임워크

    • 뼈대나 기반구조
    • 프로그래밍 진행 시 필수적 코드, 알고리즘 등 구조를 제공

  • 차이점 : 흐름을 누가 지니고 있는지!
  • 라이브러리
    • 프로그래머가 전체 흐름을 가지고 있음
  • 프레임워크
    • 프레임워크 자체가 전체 흐름을 가지고 있음

결론

profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE&Data Science 개발 기록 노트☘️

0개의 댓글