제1편
지금까지 우리는 직접 코드를 작성했습니다. 하지만 매번 처음부터 만들 필요가 있을까요?
# 지금까지 우리가 한 것
def calculate_average(numbers):
total = 0
for num in numbers:
total += num
return total / len(numbers)
# 하지만 이미 만들어진 도구가 있다면?
import numpy as np
average = np.mean(numbers) # 한 줄로 끝!
오늘 소개할 모듈(Module)과 라이브러리(Library)는 Python이나 다른 전문가들이 만들어 놓은 검증된 도구 상자입니다.
import의 개념과 사용법
필수 라이브러리 3 총사: math, random, datetime
데이터 과학의 핵심: numpy, matplotlib
나만의 모듈 만들기
즉, "바퀴를 다시 발명하지 마라!"
모듈(Module) = 파이썬 코드가 담긴
# 내장 모듈 사용하기
import math
# 원의 넓이 계산
radius = 5
area = math.pi * radius ** 2 #*는 곱하기, **는 제곱입니다
print(f"반지름 {radius}인 원의 넓이: {area:. 2f}")
# 출력:
반지름 5인 원의 넓이: 78.54
# 방법 1: 전체 모듈 가져오기
import math
print(math.sqrt(16)) # 4.0, root(16)=4
# 방법 2: 별명(alias) 사용
import math as m
print(m.sqrt(16)) # 4.0
# 방법 3: 특정 함수만 가져오기
from math
import sqrt, pi
print(sqrt(16)) # 4.0
print(pi) # 3.141592...
import math # 기본 수학 함수
print(f"제곱근: {math.sqrt(25)}") # 5.0
print(f"거듭제곱: {math.pow(2, 10)}") # 1024.0
print(f"절댓값: {math.fabs(-5.5)}") # 5.5
# 삼각함수 (라디안 단위)
print(f"sin(π/2): {math.sin(math.pi/2)}") # 1.0
print(f"cos(0): {math.cos(0)}") # 1.0
# 로그
print(f"log(100): {math.log10(100)}") # 2.0
print(f"ln(e): {math.log(math.e)}") # 1.0
# 올림/내림/반올림
print(f"올림: {math.ceil(4.3)}") # 5
print(f"내림: {math.floor(4.9)}") # 4
# 상수
print(f"π = {math.pi}") # 3.141592...
print(f"e = {math.e}") # 2.718281...
import math
def distance(x1, y1, x2, y2):
"""두 점 사이의 거리 계산"""
return math.sqrt((x2-x1)**2 + (y2-y1)**2)
# 사용
dist = distance(0, 0, 3, 4)
print(f"거리: {dist}") # 5.0
import random # 정수 난수
dice = random.randint(1, 6) # 1~6 사이 정수
print(f"주사위: {dice}") # 실수 난수
temperature = random.uniform(20.0, 30.0) # 20~30 사이 실수
print(f"온도: {temperature:. 1f}°C") # 리스트에서 무작위 선택
colors = ['빨강', '파랑', '노랑', '초록']
chosen = random.choice(colors)
print(f"선택된 색: {chosen}") # 리스트 섞기
cards = ['A', 'K', 'Q', 'J', '10']
random.shuffle(cards)
print(f"섞인 카드: {cards}") # 여러 개 뽑기 (중복 없이)
winners = random.sample(['철수', '영희', '민수', '지영', '현우'], 3)
print(f"당첨자: {winners}")
import random
def generate_lotto():
"""로또 번호 생성 (1~45 중 6개)"""
numbers = random.sample(range(1, 46), 6)
numbers.sort()
return numbers # 5개 세트 생성
print("로또 번호 추천")
for i in range(5):
print(f"{i+1} 번: {generate_lotto()}")
로또 번호 추천
1번: [3, 12, 23, 34, 39, 42]
2번: [7, 15, 21, 28, 35, 44]
3번: [2, 9, 18, 27, 33, 41]
4번: [5, 14, 22, 31, 38, 45]
5번: [1, 11, 20, 29, 36, 43]
오늘 너무 긴 내용을 다뤘으니 2편에 조금 더 많은 범위를 공부하기로 해요.