ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python #8 모듈
    공부/Python 2021. 5. 23. 19:19

    1) 표준 모듈과 활용



    1-1) 표준 모듈

    • 각기 목적에 맞게 설계되어 있고 다양한 함수, 클래스 등을 제공하며,
    • 별도의 추가 설치 과정 없이 import 문으로 로딩해서 사용한다


    a) import 모듈명

    • import math


    b) import 모듈명 as 별칭

    • import math as m


    c) from 모듈명 import함수, 클래스

    • from math import radians, ceil, floor, pi
    • -> math 모듈이 호출되지 않고 직접 함수가 호출된다


    1-2) math 모듈

    • 유용한 각종 수학 함수와 미리 정의된 값들을 포함한다

    1) radians()
      : 각도를 인자로 전달하면 라디안 변환 값 반환

    2) ceil()
      : 인자로 전달된 숫자보다 큰 값 중 최소 정수 반환

    3) floor()
      : 인자로 전달된 숫자보다 작은 값 중 최대 정수 반환

    4) pi
      : 3.14 원주율 값 저장

    • print(math.radians(90))
      
      print(math.ceil(3.2))
      
      print(math.floor(3.2))
      
      print(math.pi)



    1-3) sys 모듈

    • 시스템과 관련된 정보에 접근하거나 명령행에서 전달된 명령행 매개변수로부터 인자 값을 읽어로 때 활용된다

    1) sys.argv
      : 리스트 타입, 명령행에서 pyhton 명령에 전달된 인자들의 정보를 담고 있다

    • import sys
      
      print(type(sys.argv), sys.argv)
      
      for i, val in enumerate(sys.argv) :
          print(i, val)
      



    1-4) random 모듈

    • 난수(연속적인 임의의 수)를 생성하는 기능을 제공한다

    1) random
      : 0.0 <= N < 1.0 범위의 부동소수점 난수 N 을 반환한다

    • import random
      
      n = random()

    2) uniform
      : 지정된 범위 내의 부동소수점 난수 N 을 반환한다

    • import random
      
      n = uniform(1.0, 10.0)

    3) randrange(start, stop, step)
      : 정수형 난수 N 을 생성한다
      -> start 생략 시 0, step 생략 시 1이 기본값

    • import random
      
      n = randrange(1, 45)

    4) choice(data-list)
      : 인자로 전달된 시퀀스 객체의 항목 중 임의 항목 반환

    • import random
      
      choice([1, 2, 3, 4, 5])

    5) choices(data-list, k=2)
      : 인자로 전달된 시퀀스 객체의 항목 중 임의의 k개를 반환한다
      복원 추출 기능을 가진 시뮬레이션 함수

    • import random
      
      choices([1, 2, 3, 4, 5])

    6) sample(data-list, k=2)
      : 인자로 전달된 시퀀스 객체, 혹은 set 객체 항목 중 임의의 k개를 반환한다
      비복원 추출 기능을 가진 시뮬레이션 함수

    • import random
      
      sample([1, 2, 3, 4, 5])

    7) shuffle(data-list)
      : 인자로 전달된 시퀀스 객체의 항목을 뒤섞는 함수
      반환값은 없고 원본 객체의 항목의 순서를 뒤섞는다

    • import random
      
      shuffle([1, 2, 3, 4, 5])



    1-5) datetime 모듈

    • 날짜와 시간 정보를 확인하고 조작하는 클래스, 함수 등을 제공한다

    • from datetime import datetime, timezone, tiemdelta
      
      # 현재 지역의 날짜와 시각 정보를 가진 datetime 객체를 얻는다
      now = datetime.now()
      
      # 각 속성을 이용해서 원하는 정보를 가져올 수 있다
      year = now.year
      month = now.month
      day = now.day
      
      hour = now.hour
      minute = now.minute
      second = now.second
    • now = datetiem.now()
      
      fmt = "%Y{0} %m{1} %d{2} %H{3} %M{4} %S{5}"
      
      print(now.strftime(fmt).format(*"년월일시분초"))




    2) 서드파티 모듈 설치 및 활용



    2-1) 서드파티 모듈

    • 다른 누군가에 의해 만들어져 배포되고 공유되는 모듈


    2-2) 설치 및 삭제

    • pip install 모듈명
      
      pip uninstall 모듈명




    3) 사용자 정의 모듈



    3-1) 모듈

    • 파이썬에서 모듈은 파일이다

    • 실행의 목적과 라이브러리의 목적이 있다

      • 실행 : 파이썬 명령에 의해 실행

      • 라이브러리 : import 문에 의해 로딩



    3-2) 라이브러리로 사용될 목적의 모듈

    • 파일명 : myModule.py

    • def plus(x, y) :
          return x + y
      
      def minus(x, y) :
          return x - y
    • import myModule
      
      op1, op2 = 2, 3
      
      result = myModule.plus(op1, op2)
      
      print(result)


    실행 목적의 모듈 :

    • _name_ 속성에 "_main_" 문자열 값이 들어가 있다

    라이브러리 목적의 모듈 :

    • _name_ 속성에 모듈의 이름이 저장되어 있다


    3-3 모듈의 __name__ 속성

    • 모듈로 실행되었을 때와 메인으로 실행되었을 때를 구분해 동작할 수 있다
    • def plus(x, y) :
          return x + y
      
      def minus(x, y) :
          return x - y
      
      if __name__ == "__main__" :
          print(plus(3, 2)
          print(minus(3, 2)




    4) 사용자 정의 패키지



    4-1) 패키지 정의


    패키지 : 모듈을 모아놓은 것


    패키지 정의 방법 :

    1) 폴더를 만든다

    2) 모듈 파일을 생성한다

    3) __init__.py 파일을 생성한다

    4) all 속성에 패키지에 포함될 모듈 이름 저장

    • 
      __all__ = ["modul1", "modul2"]

    4-2) 패키지 사용


    • from 패키지명 import 모듈

    반응형

    '공부 > Python' 카테고리의 다른 글

    Python #7 내장 함수  (0) 2021.05.12
    Python # 6 함수  (0) 2021.05.12
    Python #5 for  (0) 2021.05.12
    Python #4 if  (0) 2021.05.12
    Python #3 연산자  (0) 2021.05.12

    댓글

Designed by Tistory.