◾모듈
모듈
: 이미 만들어진 기능, 특정 기능을 가지고 있는 파이썬 파일
- 계산 모듈 : math
- 난수 모듈 : random
- 날짜/시간 모듈 : time, datetime
- 파이썬 모듈 :
내부 모듈
, 외부 모듈
, 사용자 모듈
- 내부 모듈 : 파이썬 설치 시 기본적으로 사용할 수 있는 모듈
- 외부 모듈 : 별도 설치 후 사용할 수 있는 모듈
- 사용자 모듈 : 사용자가 직접 만든 모듈
import random
rNum10 = random.randint(1, 10)
print(f'rNum10 : {rNum10}')
rNums100 = random.sample(range(101), 10)
print(f'rNums100 : {rNums100}')
- 모듈 제작 : 함수, 클래스 등을 작성한 파이썬 파일(.py)을 제작
import calculator
calculator.add(20, 10)
calculator.sub(20, 10)
calculator.mul(20, 10)
calculator.div(20, 10)
- 모듈 사용 :
import
, from..import..
, as
- import : 모듈 임포트
- from .. import .. : 모듈내의 특정 기능만 임포트
- as : 모듈에 대한 별명 작성하여 이름을 단축시킬 수 있다
import calculator
calculator.add(10, 20)
from calculator import add, mul
add(10, 20)
mul(10, 20)
import calculator as cal
cal.add(10, 20)
cal.mul(10, 20)
◾실행(메인) 파일
전역 변수 __name__
: 모듈 이름
이 저장되거나 __main__
이 저장
- __main__ : 실행(메인) 파일임을 의미
- 모듈 이름 : import된 모듈임을 의미
import calculator
print(calculator.__name__)
print(__name__)
- if __name = '__main' : 메인 파일일 경우에만 실행
if __name__ == '__main__':
print(f'__name__ : {__name__}')
◾패키지
패키지
: 관련있는 모듈들을 모아 두는 것
- 관련있는 모듈을 그룹으로 관리할 수 있다.
- CalculatorForInt : addCal, subCal, mulCal, divCal
- CalculatorForFloat : addCal, subCal, mulCal, divCal
from CalculatorForInt import addCal, subCal, mulCal, divCal
print(addCal.add(10, 20))
print(subCal.sub(10, 20))
print(mulCal.mul(10, 20))
print(divCal.div(10, 20))
site_packages
: 어디서나 사용할 수 있는 범용 모듈로 만드는 것
- site_packages 경로를 확인하여 해당 경로에 패키지를 추가
import sys
for path in sys.path:
print(path)
◾자주 사용하는 모듈
- 자주 사용하는 모듈 : math(수학), random(난수), time(시간)
listVar = [2, 5, 3.14, 58, 10, 2]
print(sum(listVar))
print(max(listVar))
print(min(listVar))
print(pow(2, 3))
print(round(3.141592, 1))
import math
print(f'math.fabs(-10) : {math.fabs(-10)}')
print(f'math.fabs(-0.12895) : {math.fabs(-0.12895)}')
print(f'math.ceil(5.21) : {math.ceil(5.21)}')
print(f'math.ceil(-5.21) : {math.ceil(-5.21)}')
print(f'math.floor(5.21) : {math.floor(5.21)}')
print(f'math.floor(-5.21) : {math.floor(-5.21)}')
print(f'math.trunc(5.21) : {math.trunc(5.21)}')
print(f'math.trunc(-5.21) : {math.trunc(-5.21)}')
print(f'math.gcd(14, 21) : {math.gcd(14, 21)}')
print(f'math.factorial(10) : {math.factorial(10)}')
print(f'math.sqrt(4) : {math.sqrt(4)}')
print(f'math.sqrt(12) : {math.sqrt(12)}')
import time
lt = time.localtime()
print(f'time.localtime():{lt}')
print(f'lt.tm_year : {lt.tm_year}')
print(f'lt.tm_year : {lt.tm_mon}')
print(f'lt.tm_year : {lt.tm_mday}')
print(f'lt.tm_year : {lt.tm_hour}')
print(f'lt.tm_year : {lt.tm_min}')
print(f'lt.tm_year : {lt.tm_sec}')
print(f'lt.tm_year : {lt.tm_wday}')
print(f'lt.tm_year : {lt.tm_yday}')
print(f'lt.tm_year : {lt.tm_isdst}')
◾객체 지향 프로그래밍
객제치향 프로그래밍
: 객체를 이용한 프로그램으로 객체는 속성과 기능으로 구성
- 계산기
- 자동차
- 속성 : 색상, 길이, 가격, ...
- 기능 : 전진, 후진, 정지, ...
객체(Object)
: 속성(Attribute)
+ 기능(Function)
객체 생성
: 클래스에서 생성
- 자동차 클래스
- 속성 : 색상, 길이, 가격, ...
- 기능 : 전진, 후진, 정지, ...
- 객체 생성 : 자동차 객체1, 자동차 객체2, 자동차 객체3, ...
- 객체 사용의 장점 : 코드 재사용, 모듈화에 좋다.
- 자동차A : 배터리 일체형(부품 결합도 높음)
- 자동차B : 배터리 교체형(부품 결합도 낮음 -> 가장 이상적인 프로그램이 될 수 있다.)
- 자동차C : 배터리 충전형(부품 결합도 높음)