티스토리 뷰

모듈(module)?

모듈은 파이썬에서 관련 있는 변수, 함수, 클래스 등을 하나의 파일 단위로 묶어 놓은 것이다.
이를 통해 코드를 논리적으로 분리하고, 재사용성을 높이며, 유지보수를 쉽게 할 수 있다.

모듈의 특징

  • 부품처럼 재사용 가능: 여러 곳에서 공통적으로 사용할 수 있음
  • 코드의 구조화: 기능별로 코드를 나눠서 관리 가능
  • 다른 파일에서 불러오기 가능: import 키워드를 사용하여 사용

🧩 모듈의 종류

종류 설명
표준 모듈 파이썬에 기본으로 포함된 모듈 (예: math, random, datetime)
외부 모듈 다른 개발자가 만든 패키지를 설치하여 사용하는 모듈 (예: numpy, pandas)
사용자 정의 모듈 사용자가 만든 .py 파일 (예: my_module.py)

📌 사용 방법

  • import를 사용하여 표준모듈, 외부모듈을 가져와서 사용
import math
print(math.sqrt(16))  # 4.0
import math

# 1. 제곱근
print("1) math.sqrt(16):", math.sqrt(16))  # 4.0

# 2. 거듭제곱
print("2) math.pow(3, 4):", math.pow(3, 4))  # 81.0

# 3. 올림 / 내림
print("3) math.ceil(2.3):", math.ceil(2.3))   # 3
print("   math.floor(2.7):", math.floor(2.7)) # 2

# 4. 절댓값
print("4) math.fabs(-7):", math.fabs(-7))     # 7.0

# 5. 삼각함수
# 45°를 라디안으로 → math.radians(45)
rad45 = math.radians(45)
print("5) math.sin(45°):", math.sin(rad45))   # 약 0.7071
print("   math.cos(45°):", math.cos(rad45))   # 약 0.7071

# 6. 상수 π, e
print("6) math.pi:", math.pi)                 # 약 3.14159
print("   math.e:", math.e)                   # 약 2.71828

# 7. 로그
print("7) math.log(10):", math.log(10))        # 자연로그
print("   math.log(16, 2):", math.log(16, 2))  # log₂(16) = 4

# 8. 팩토리얼
print("8) math.factorial(6):", math.factorial(6))  # 720

 


표준모듈이란?

표준 모듈이란,
파이썬이 기본적으로 제공하는 모듈로, 별도의 설치 없이 바로 import 하여 사용할 수 있는 모듈이다.

✅ 특징

  • 파이썬 설치 시 자동으로 함께 제공됨
  • 다양한 기능(수학, 날짜, 파일, 난수, 통계 등)을 제공
  • 코드의 생산성과 효율성을 높여줌

🧮 예시: math 모듈

import math

print(math.sqrt(9))     # 제곱근 → 3.0
print(math.pi)          # 원주율 → 3.141592...
print(math.factorial(5))  # 5! → 120

📦 그 외 자주 쓰는 표준 모듈 예시

모듈 기능 설명
math 수학 계산 (제곱근, 삼각함수 등)
random 난수 생성 (무작위 숫자)
datetime 날짜와 시간 처리
os 운영체제와 상호작용 (파일 경로 등)
sys 파이썬 인터프리터 제어
statistics 평균, 중앙값 등 통계 계산
time 시간 지연, 현재 시간 확인 등

from 구문이란?

from 구문은 모듈(또는 패키지)로부터 특정 함수, 클래스, 변수만 선택적으로 가져오는 문법이다.
이를 통해 모듈명을 생략하고 바로 함수나 클래스 이름을 사용할 수 있게 해준다.

🧩 기본 사용 예시

from math import sqrt
print(sqrt(16))  # 4.0
  • math.sqrt(16)처럼 모듈명을 쓰지 않아도 됨 → 코드 간결

🌟 모든 구성요소를 가져올 때

from math import *
print(sqrt(25))  # 가능하지만 비추천
  • *을 사용하면 해당 모듈의 모든 함수와 클래스를 가져옴
  • 단점: 무엇이 import 되었는지 알기 어렵고, 이름 충돌 위험
  • 필요한 부분만 가져와서 코드 가독성 증가
  • 메모리 사용을 줄일 수 있음
  • 입력 타이핑이 줄어듦

from 모듈 import 항목 as 별칭

  • 모듈이름이 길어서 짧게 사용하고 싶을 때 사용
  • from구문을 이용하여 math 없이 사용
import math as m

print(m.sin(1))
print(m.ceil(2.3))
print(m.sqrt(4))

2.표준모듈 예

os 모듈

os (Operating System) 모듈은
파이썬에서 운영체제 기능을 사용할 수 있도록 도와주는 표준 모듈이다.
파일 및 디렉터리 관리, 시스템 정보 접근, 경로 처리 등을 할 수 있다.

기능 설명 예시
현재 작업 디렉터리 확인 현재 파일이 실행 중인 폴더 경로 확인 os.getcwd()
디렉터리 변경 작업 디렉터리 이동 os.chdir('폴더경로')
디렉터리 목록 보기 해당 경로의 파일/폴더 목록 os.listdir()
디렉터리 생성 새 폴더 만들기 os.mkdir('새폴더')
디렉터리 삭제 폴더 삭제 os.rmdir('폴더')
파일 경로 결합 경로를 OS에 맞게 합침 os.path.join()
파일 존재 여부 경로의 파일/폴더 존재 확인 os.path.exists()
import os

# 현재 작업 디렉터리 출력
print("현재 위치:", os.getcwd())

# 디렉터리 목록 보기
print("목록:", os.listdir())

# 디렉터리 생성
os.mkdir("new_folder")

# 경로 합치기
new_path = os.path.join(os.getcwd(), "new_folder")
print("새 경로:", new_path)

# 경로 존재 확인
print("존재하나요?", os.path.exists(new_path))

random 모듈

  • 난수 발생 관련 모듈
  • 이 모듈은 다양한 형태의 무작위 숫자를 생성할 수 있는 함수들을 포함
함수 설명 예시
random() 0 이상 1 미만의 실수 반환 random.random() → 0.1234
randint(a, b) a 이상 b 이하의 정수 반환 random.randint(1, 6)
uniform(a, b) a 이상 b 이하의 실수 반환 random.uniform(1.5, 3.5)
randrange(a, b, step) 지정 범위에서 step 간격으로 정수 반환 random.randrange(1, 10, 2)
choice(seq) 시퀀스에서 임의의 요소 1개 선택 random.choice(['가위','바위','보'])
shuffle(seq) 시퀀스의 요소들을 섞음 (원본 변경) random.shuffle(my_list)
sample(seq, k) 시퀀스에서 중복 없이 k개 추출 random.sample(range(10), 3)
import random

print("0~1 사이 실수:", random.random())
print("주사위 굴리기:", random.randint(1, 6))
print("리스트에서 무작위 선택:", random.choice(['가위', '바위', '보']))
import random

#random()
print(random.random()) #0~1사이의 float를 리턴
#결과가 매번 다름을 확인 할 수 있음
import random
print(random.randint(1, 10))  # 1과 10 사이의 정수 (1과 10 포함)
#choice() #구성 요소 중 하나를 선택
print(random.choice([1,2,3,4,5,6]))
import random
my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)
print(my_list)  # 리스트 요소가 섞인 결과 출력

예제

동전던지기

import random

# 0 또는 1을 무작위로 생성합니다.
coin_flip = random.randint(0, 1)

# 조건문을 사용하여 결과를 확인합니다.
if coin_flip == 0:
    print("동전은 앞면입니다.")
else:
    print("동전은 뒷면입니다.")

sys모듈

  • Python 인터프리터와 밀접하게 관련된 함수와 변수들을 제공
  • 이 모듈은 시스템 관련 정보에 접근, Python 인터프리터에 대한 제어를 가능하게 한다.

sys.version()현재 사용 중인 Python 인터프리터의 버전 정보, 실행 중인 운영 체제의 플랫폼 정보 등을 제공

import sys

print(sys.version)
print(sys.platform)

라.datetime 모듈

  • 날짜와 시간에 관한 모듈
  • 이 모듈을 사용하면 날짜와 시간을 쉽게 생성, 조작, 그리고 포매팅할 수 있다.
  •  
from datetime import date
today = date.today()
print(today)

noon = time(12,0, 0)
print(noon)

datetime.datetime: 날짜와 시간을 동시에 나타내는 클래스입니다. date와 time 클래스의 기능을 결합한 형태입니다.

from datetime import datetime
now = datetime.now()
print(now)
print(now.year)
print(now.month)
print(now.day)
print(now.hour)
print(now.second)

오늘부터 1000일 이후의 날짜를 구해보자

import datetime
d = datetime.date.today() + datetime.timedelta(days=1000)
print(d)

문제1.파일의 오류 메세지 출력

사용자로부터 파일 이름을 입력받아 해당 파일이 존재하는지 확인하고, 존재한다면 파일의 내용을 출력하는 기능을 수행합니다.

import os.path
os.chdir('/content')#파일이 있는 경로 설정
fname=input('filename:')
fname=fname+'.txt'
if os.path.exists(fname):
    f=open(fname, 'r')
    data = f.read()
    print(data, end='')
    f.close()
else:
    print('{}파일이 없어요' .format(fname))

문제2.참석자 명단을 입력 받은 파일을 출력 해 보자.

f = open('guest.txt', 'w') #파일열기
while True:
    name = input('name:')
    if not name:
        break
    print(f'{name}학생 환영해요')
    f.write(name+'\n') #줄바꿈
f.close()

f = open('guest.txt') #파일열기
lines = f.readlines()

cnt = len(lines)

print(f'total : {cnt}')
728x90
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
반응형