1. Python 프로그램 계층 구조
※ 파이썬은, 작은 단위가 모여 큰 시스템을 이루는, 체계적인 구조를 가짐
- 라이브러리 > 패키지 > 모듈 > 문장 > 표현식 > 객체
ㅇ 라이브러리 (Library) : 여러 패키지와 모듈을 묶어 놓은 최상위 집합
- 例) PSL(표준 라이브러리) 등
* 파이썬 표준 라이브러리 (Python Standard Library, PSL)
. 파이썬 설치 시 기본으로 제공되는, 모듈 및 함수 집합
ㅇ 패키지 (Pakage) : 모듈을 디렉토리(폴더) 구조로 조직화한 것
- 例) __init__.py 포함 (버전별 상이)
ㅇ 모듈 (Module) : 유용한 변수,함수,클래스들을 모아놓은 .py 파일
- 코드 재사용의 단위
ㅇ 문장 (Statement) : 실행 가능한 코드의 최소 독립 단위
- 例) if, for, def 등
ㅇ 표현식 (Expression) : 값을 계산하여 결과를 내는 코드
- 例) 1 + 2, func() 등
ㅇ 객체 (Object) : 메모리에 할당된 데이터 실체
- 사실상, 파이썬의 모든 것이 객체임
※ [참고] ☞ 파이썬 표준 라이브러리 (파이썬 홈페이지)
2. 모듈 관리
ㅇ 모듈 : 유용한 변수,함수,클래스들을 모아놓은 집합체 (스크립트 파일)
ㅇ def를 사용하여 정의됨
- def가 실행되면, 함수의 객체 및 참조가 함께 생성됨
ㅇ 주요 내장 모듈 例)
- collections : 기본 파이썬 자료형(list, tuple, dict)들 보다 좀더 확장된 대안 기능을 제공
. (Counter, deque, defaultdict, namedtuple, OrderdDict)
. 표와 인덱싱 같은 데이터를 다룰 때 유용
- datetime : 날짜,시간 형식과 관련된 기능들을 다룸
- math : 수학과 관련된 기능들을 다룸 (특히, 실수의 연산)
. pi,sqrt(),sin(),cos(),exp(),ceil(),floor(),log2() 등
- os : 운영체제와 관련된 기능들을 다룸
- random : 랜덤 값 생성
. choice(), randrange(), randint() 등
. 例) random.randint(0,10) => 0,10 포함 범위에서 임의 정수 하나 출력
. 例) random.uniform(1.5,9.5) => 1.5~9.5에서 균등하게 분포된 난수 소수 하나 출력
- re : 정규표현식을 다룸 ☞ 파이썬 정규표현식 참조
. match(),search(),findall(),finditer(),sub() 등
- sys : 시스템 관련 정보를 담음
. getsizeof(),stdin 등
. 주로, 명령 매개변수를 입력 받을 때 많이 사용되는 등
- time : 시간 관련 기능들을 다룰 때
- urllib : URL을 다룸
ㅇ 모듈 관련 명령어
- 올리기 : import 모듈명
- 내리기 : del 모듈명
- 특정 함수/클래스/변수 만 불러오기 : from 모듈명 import 이름
- 임포트된 모듈 목록 확인 : print(dir())
ㅇ 모듈 설치 여부 확인
- (운영체제) pydoc modules
- (파이썬) help("modules")
3. 패키지 관리
※ 외부 라이브러리를 설치하고 관리하기 위한 생태계
ㅇ 패키지 관리자 (PIP & PyPI)
- PyPI (Python Package Index) : 파이썬 소프트웨어의 공식 저장소 (Cloud)
- PIP (Package Installer for Python) : PyPI에서 패키지를 내려받아 설치하는 도구
. pip install --upgrade pip : 패키지 매니저의 최신 버전으로 업그레이드 설치
ㅇ 필수 PIP 명령어
- # 패키지 설치 및 업데이트
. pip install 패키지명 # 설치
. pip install 패키지명==1.2.0 # 특정 버전 설치
. pip install --upgrade pip # PIP 자체 업데이트
- # 관리 및 확인
. pip list # 설치된 목록 확인
. pip uninstall 패키지명 # 삭제
. pip show 패키지명 # 패키지 상세 정보 확인
ㅇ [참고] 운영체제별 프롬프트> pip [options]
ㅇ 例)
- pip install numpy : 최신 버전의 NumPy 패키지를 설치
- pip install 패키지명==버젼
- from bar import foo : bar 패키지 내 foo 모듈의 사용
- from flask import Flask
. flask라는 패키지에서 Flask라는 모듈(클래스)를 가져오겠다는 의미
.. flask : 소스 저장소(폴더) 지정, '도구함(폴더)'의 이름
.. Flask : 가져올 대상 지정, 도구함 내 '설계도(클래스)'
- import numpy as np : 넘파이 라이브러리 모듈을 불러와서, np라는 명칭으로 사용함
4. 특수 변수와 실행 환경 : (__name__)
※ 파이썬 스크립트가 실행되는 맥락을 파악하기 위해 사용됨
ㅇ __name__ 변수의 역할
- 파이썬은, 모듈을 실행할 때, 자동으로 __name__ 변수를 생성함
. 직접 실행 시 : 해당 파일의 __name__에는, "__main__"이라는 값이 할당됨
. Import 시 : 해당 파일의 __name__에는, 실제 "모듈의 이름"이 할당됨