728x90
모듈(Module), 패키지(Package)
- 모듈: 변수, 함수, 클래스를 모아놓은 .py확장자 파일
- .py 파일: 마크다운이나 셀같은 정보는 없고 순수한 파이썬 코드만 존재
- .ipynb 파일: 데이터분석가(과학자)들이 파이썬 언어와 데이터로 작업하고 실험할 수 있도록 도와주는 Interactive한 개발 환경에서 실행되는 파일
- 모듈과 패키지의 차이점
- 패키지: 모듈의 기능을 폴더별로 정리한 개념
- 패키지 생성: 기능별로 폴더를 정리하는 것과 비슷한 개념
구조는 다음과 같다.
# 모듈 불러오기
import <모듈명>
# 패키지에서 모듈 불러오기
from <패키지명> import <모듈명>
# 모듈 안에 함수와 클래스 불러오기
from <모듈명> import <함수 or 클래스>
# 별칭 주기
import <모듈명> as <별칭>
모듈 만들기
def do_func():
print("저는 demo 모듈의 do_func 입니다.")
class MyClass:
def __init__(self):
print("저는 demo 모듈의 MyClass 입니다.")
# 스크립 모드로 실행될 때만 코드를 실행해라!
if __name__ == "__main__" : # 모듈명이 나오면 스크립트 방식이 아니라 출력 x
print("저는 demo 모듈입니다.") # __name__ 사용
print(f"__name__변수의 값: {__name__}") # 파일명이 나옴
모듈은 만드는 방법은 vs code에서 파일 하나를 만들고,
만든 파일 안에 함수나 클래스를 넣으면 모듈이 된다.
모듈은 여러 조건들을 넣을 수 있다.
위 코드에서는 "__ name__"을 통해서 스크립 모드로 실행될 때만 __main__이 나오도록 할 수 있다.
이 것을 이용하여 if문을 통해 스크립트형 방식과 대화형 방식에 따라 조건을 걸었다.
패키지 불러오기
방법1)
import demo
demo.do_func()
demo.MyClass()
방법2)
from demo import do_func,MyClass
do_func()
MyClass()
방법3)
import demo as dm
dm.do_func()
dm.MyClass()
방법4)
from demo import * 안좋은 예시
do_func()
MyClass()
방법5)
import demo
print(__name__) # __main__ (불필요한 코드를 실행시키지 않기 위해 사용)
패키지를 불러오는 방법은 위와 같이 5가지의 방법이 있다.
그 중에서 방법 4는 패키지를 불러오는 안좋은 예시이다.
왜냐하면 본인이 패키지에서 어떠한 모듈을 쓸지 모르는 상태라
모듈을 쓸 때 겹치는 경우가 생기기 때문이다.
sys, os 모듈 기능
sys와 os의 모듈을 사용하면 여러가지 정보를 알 수 있다.
기능은 다음과 같다.
import sys, os
# 파이썬 라이브러리가 저장되어있는 위치를 리스트로 담고있다.
# print(sys.path)
# print("exit 함수 실행 전")
# sys.exit() # 스크립트 실행을 종료하는 함수
# print("exit 함수 실행 후")
# print(sys.version) # 파이썬 버전 확인
# print(__file__) # 현재 파일이름 밑에 python main.py하면 상대경로로 나옴
# 현재 폴더경로 (작업폴더 기준)
# print(os.getcwd())
# 현재 파일의 절대 경로(파일명 포함)
# print(os.path.abspath(__file__))
# 현재 파일이 있는 폴더의 절대경로
# print(os.path.dirname(os.path.abspath(__file__)))
- cpu 개수 확인하기
os.cpu_count()
=> 2
- 폴더 만들기
- 폴더가 이미 있을 경우 에러가 발생
os.mkdir("data")
os.mkdir("/content/data/files") # 폴더 안에 파일 생성
- 폴더 또는 파일명 변경하기
os.rename("data", "data2") # 기존 코드 -> 바꿀 코드명
- 폴더 삭제하기
os.rmdir("data2/files")
- 폴더 존재 여부 확인
os.path.isdir("data1"),os.path.isdir("data2")
=> (False, True)
- 파일 존재 여부 확인
os.path.isfile("demo.py")
=> True
- 파일 삭제하기
os.remove("demo.py")
random 모듈 사용해보기
- random 함수
- 0 ~ 1 사이에 랜덤한 실수를 반환한다.
import random
random.random()
=> 0.48771383504064114
- uniform 함수
- 두 개의 숫자 사이의 랜덤한 실수를 반환한다.
random.uniform(1,10)
=> 8.139340557198768
- randint 함수
- 2개의 숫자 사이의 랜덤한 정수를 반환한다.
random.randint(0,5)
=> 3
- randrange 함수
- start,stop,step 으로 만들어지는 정수 중에 랜덤값을 반환한다.
random.randrange(1,9,2)
=> 7 # 1부터 8까지 2스탭으로 랜덤하게 추출한다.
- choice 함수
- 시퀀스 자료형에서 랜덤하게 하나의 요소를 선택해서 반환
lst = [1,2,3,4,5,6]
random.choice(lst)
=> 2
- sample 함수
- 시퀀스 자료형에서 랜덤하게 두번째 인수의 개수로 선택해서 반환
lst = [1,2,3,4,5,6]
random.sample(lst,2)
=> [4, 3]
- shuffle 함수
- 요소의 순서를 랜덤하게 변경한다.
- 원본을 변경한다.
- iterable한 것만 들어갈 수 있다.
lst = [1,2,3,4,5,6]
random.shuffle(lst)
lst
=> [5, 4, 3, 1, 6, 2]
- seed 함수
- 다른 컴퓨터에서도 동일값이 나온다
random.seed(42)
lst = [1,2,3,4,5,6]
random.shuffle(lst)
lst
=> [4, 2, 3, 5, 1, 6]
이번주부터는 vscode를 사용하여 적응이 잘 안된다.
금방 적응하자!
728x90
'AI 공부 > 파이썬' 카테고리의 다른 글
파이썬 (collections, defaultdict, OrdereDdict 모듈) (0) | 2022.08.08 |
---|---|
파이썬 (예외 처리) (0) | 2022.08.08 |
파이썬 (50 문제 풀고, 부족한 개념 정리) (0) | 2022.08.06 |
파이썬 (클래스 - 2 ) 상속 클래스, 오버라이딩, private, 매직 메소드, getter&setter (0) | 2022.08.04 |
파이썬 (클래스 - 1) (0) | 2022.08.03 |
댓글