[ZB] 파이썬 중급 2

SeriesWorld·2023년 10월 24일

ZB20

목록 보기
6/9
post-thumbnail

모듈

내부 모듈

  • 파이썬 설치 시 기본적으로 사용할 수 있는 모듈

난수 모듈(random)

import random
rNum = random.randint(1,10)  # 1~10

random 모듈 뜯어보기

외부 모듈

  • 별도 설치 후 사용할 수 있는 모듈(ex. pandas, numpy 등)

사용자 모듈

  • 사용자가 직접 만드는 모듈(파이썬 파일에 함수를 정의하고, import로 파이썬 파일을 호출해서 사용 가능)
  • lambda로 만든 함수도 호출할 수 있다.
    • 복합연산자 += 는 문자열도 사용 가능하다.(문자열이 뒤에 붙음)
    	sample = 'abc'
    	sample += 'd'    # sample = sample + 'd'
    	print(sample)   # abcd 

모듈 사용

  • import 키워드로 모듈을 불러온다
  • as 키워드를 이용해서 모듈 이름을 단축시킬 수 있다.
  • from ~ import 키워드를 이용해서 특정 기능만 불러올 수 있다.
    • from을 통해서 기능을 불러오는 경우, 모듈명.기능()형식으로 쓸 필요 없이 기능을 바로 쓸 수 있다.
    • 콤마(,)를 통해 여러 개의 기능을 한꺼번에 가져올 수도 있다.
    • from ~ import * 하면 모든 기능을 다 가져온다.

실행(메인) 파일

  • 전역변수 __name__ 는 별도로 선언(초기화)하지 않아도 내용을 담고 있다.
  • 실행될 때는 __name__ 변수는 __main__ 을 담고있고, 실행되지 않을 때(모듈로써 호출될 때)는 해당 모듈명이 __name__ 변수에 담긴다.


    • 모듈 안에 실행문이 있는 경우, 호출만 해도 실행문이 실행된다.

      모듈이 호출될 때 실행되는 것을 방지하기 위해 조건문을 통해 __name__이 __main__인 경우에만 실행되도록 할 수 있다.

패키지

  • 관련 있는 모듈을 디렉토리(그룹)로 관리
from [패키지] import [모듈]
  • 패키지, 모듈은 같은 디렉토리 내 혹은 venv/Lib/site-packages 디렉토리 내에서 불러올 수 있다.
import sys

for path in sys.path:
  	print(path)
  • 위 실행문을 통해 import할 때 불러오는 package Library 디렉토리를 알 수 있다.
  • 여러 디렉토리가 보이는데, 그 중 venv환경은 현재 가상환경에서만 불러오는 디렉토리이다.

가상환경

  • 독립적인 환경 세팅을 통해 충돌을 피할 수 있다.(To be continued...)

자주 사용하는 모듈

math 모듈

절대값 fabs

import math

print(f'math.fabs(-10): {math.fabs(-10)})    # 10.0, float

올림 ceil / 내림 floor / 버림 trunc

import math
    
print(f'math.ceil(0.1234): {math.ceil(0.1234)}')   # 1, int
print(f'math.floor(-5.2): {math.floor(-5.2)}')   # -6, int
print(f'math.trunc(-5.2): {math.trunc(-5.2)}')   # -5, int

최대공약수 gcd / 팩토리얼 factorial / 제곱근 sqrt

import math
    
print(f'math.gcd(14,21): {math.gcd(14,21)}')   # 7, int
print(f'math.factorial(8): {math.factorial(8)}')   # 40320, int
print(f'math.sqrt(4): {math.sqrt(4)}')    # 2.0, float

random 모듈

  • randint(a, b) : a부터 b까지(a, b 포함)의 숫자 중 랜덤 정수(int) 반환
  • sample(range(a, b), c) : a부터 b-1까지의 숫자 중 랜덤하게 c 갯수만큼 반환(list형)
  • random() : 무작위 실수(float) 반환

time 모듈

  • localtime() : 현재 시간
    • tm_year : 연도
      tm_mon : 월
      tm_mday : 일
      tm_hour : 시
      tm_min : 분
      tm_sec : 초
      tm_wday : 요일(0 ~ 6 / 일 ~ 토)

localtime()으로 클래스가 생성되고, 위에 언급된 것들 외에도 여러 속성들이 있다.

0개의 댓글