파이썬 모듈과 import 사용법, 남이 만든 도구 가져다 쓰기
지난 글에서 함수를 직접 만들어봤잖아요. 매개변수 넣고 기본값 설정하고. 근데 거기까지 오면서 이런 생각 한 번쯤 드셨을 거예요.
"이런 함수, 누가 이미 만들어놓은 거 없나?"
있어요. 엄청 많아요. 파이썬을 깔면 처음부터 같이 따라오는 도구들이 수백 개나 들어있거든요. 오늘은 그걸 어떻게 꺼내 쓰는지 이야기해볼게요.
파이썬 모듈이 도대체 뭐예요
모듈이라는 단어가 좀 거창하게 들리는데, 사실 별거 아니에요.
모듈은 그냥 파이썬 파일이에요. 누군가 미리 만들어둔 .py 파일이요.
비유 하나 들어볼게요. 집에 도구상자가 여러 개 있다고 생각해보세요. 하나는 망치랑 못이 들어있는 상자, 하나는 드라이버만 모아둔 상자, 또 하나는 줄자랑 수평계 들어있는 상자. 모듈도 똑같아요. 비슷한 기능끼리 묶어둔 도구상자라고 보시면 돼요.
예를 들어 random이라는 모듈에는 무작위 숫자 뽑는 도구들이 모여있고, math라는 모듈에는 수학 계산용 도구들이 모여있어요. 누군가 미리 만들어서 파이썬에 넣어둔 거죠.
이런 모듈 중에서도 파이썬을 설치하면 자동으로 같이 깔리는 것들이 있어요. 이걸 표준 라이브러리라고 불러요. 도서관에 책이 잔뜩 꽂혀있는 것처럼, 파이썬에도 미리 만들어진 모듈들이 책장에 잔뜩 꽂혀있는 거예요. 추가 설치 없이 바로 쓸 수 있고요.
python import 기본기
자, 책장에 책이 있다고 해서 그냥 쓸 수 있는 건 아니잖아요. 책상으로 일단 가져와야죠. 그게 바로 import예요.
import random # random이라는 모듈을 가져옵니다
주사위 = random.randint(1, 6) # 1부터 6 사이 무작위 숫자 하나
print(주사위)
실행 결과:
4
import random 한 줄 적었더니 그때부터 random.randint라는 도구가 사용 가능해졌어요. 책장에서 책을 뽑아 책상에 올려놓은 거랑 똑같죠.
여기서 점(.)이 좀 헷갈리실 텐데요, 모듈명.도구이름 이렇게 쓴다고 생각하시면 돼요. "random 안에 들어있는 randint"라는 뜻이거든요.
import는 파일 맨 위에 한 번만 적으면 돼요. 아래에서 random을 100번 더 써도 또 import 안 해도 됩니다. 그래서 보통 import는 코드 맨 위에 몰아서 적어두는 게 관례예요.
from import 와 as 별칭
import random 말고 다른 방식도 있어요.
from random import randint # randint만 콕 집어서 가져오기
숫자 = randint(1, 10) # 이제 random. 안 붙여도 돼요
print(숫자)
차이가 보이세요? random.randint라고 안 써도 그냥 randint만 써도 돼요. "random이라는 책에서 randint라는 페이지만 뜯어와줘"라는 뜻이거든요.
여기서 의문이 드실 수 있어요. 그러면 그냥 from import만 쓰면 되는 거 아닌가? 꼭 그렇지는 않아요. import random을 쓰면 random.choice, random.shuffle 같은 것도 다 쓸 수 있는데, from random import randint라고 하면 randint만 쓸 수 있거든요. 한두 개만 쓸 거면 from import, 여러 개 쓸 거면 그냥 import. 이렇게 골라 쓰시면 돼요.
모듈 이름이 길거나 자주 쓸 때는 as로 별명을 붙일 수 있어요.
import datetime as dt # datetime을 dt라는 별명으로 부르기로 함
지금 = dt.datetime.now() # dt로 줄여서 호출
print(지금)
데이터 분석 쪽 가시면 import pandas as pd, import numpy as np 이런 게 거의 공식처럼 굳어있어요. 다른 사람 코드 따라가는 게 무난해요.
자주 쓰는 파이썬 라이브러리 셋
random - 무작위가 필요할 때
import random
메뉴들 = ["김치찌개", "된장찌개", "비빔밥", "냉면"] # 후보 리스트
오늘메뉴 = random.choice(메뉴들) # 리스트에서 하나 뽑기
print(f"오늘 점심은 {오늘메뉴}")
로또 = random.sample(range(1, 46), 6) # 1~45 중 6개, 중복 없이
print(로또)
실행 결과:
오늘 점심은 비빔밥
[3, 17, 22, 28, 34, 41]
math - 수학 계산이 필요할 때
import math
print(math.sqrt(16)) # 제곱근 → 4.0
print(math.pi) # 원주율 → 3.141592653589793
print(math.ceil(3.2)) # 올림 → 4
print(math.floor(3.8)) # 내림 → 3
datetime - 날짜와 시간
import datetime
지금 = datetime.datetime.now() # 현재 시각
print(지금)
오늘 = datetime.date.today() # 오늘 날짜만
print(오늘)
datetime은 좀 특이해요. 모듈 이름도 datetime이고 그 안에 또 datetime이라는 도구가 있어서 datetime.datetime이라고 두 번 적게 돼요. 그래서 import datetime as dt로 줄여 쓰는 사람이 많고요.
외부 라이브러리는 살짝만 맛보기
표준 라이브러리는 설치 없이 바로 쓸 수 있다고 했잖아요. 근데 파이썬이 진짜 강력한 이유는 외부 라이브러리가 어마어마하게 많기 때문이에요.
데이터 분석 쪽 pandas, 웹사이트 정보 가져올 때 쓰는 requests, 그래프 그리는 matplotlib... 이런 건 표준 라이브러리에 없어서 따로 설치해야 해요. 그때 쓰는 게 pip라는 도구고요.
pip install requests
터미널에 이렇게 입력하면 설치돼요. 자세한 건 나중에 따로 다룰 거니까 지금은 "외부 라이브러리는 pip로 설치한다" 정도만 기억해두세요.
자주 만나는 에러들
import randmo # 오타!
ModuleNotFoundError: No module named 'randmo'
"그런 모듈 없는데요?"라는 뜻이에요. 99%는 오타예요. 저도 처음엔 이거 한참 찾았어요.
import random
random.randomint(1, 10) # randint인데 randomint로 잘못 씀
AttributeError: module 'random' has no attribute 'randomint'
이건 "random이라는 모듈은 있는데 그 안에 randomint라는 건 없어요"라는 뜻이에요. 도구 이름 오타가 대부분이고요.
import 자체를 빠뜨리고 쓰면 NameError: name 'random' is not defined가 떠요. 책장에서 책을 안 가져왔는데 책상 위에 있는 척하면 안 되겠죠.
실습 - 가위바위보 게임
오늘 배운 거 써먹어보는 미니 프로젝트예요.
import random
선택지 = ["가위", "바위", "보"]
컴퓨터 = random.choice(선택지) # 컴퓨터가 무작위로 하나 고름
사용자 = input("가위, 바위, 보 중 하나를 입력하세요: ")
print(f"컴퓨터: {컴퓨터} / 당신: {사용자}")
if 사용자 == 컴퓨터:
print("비겼어요!")
elif (사용자 == "가위" and 컴퓨터 == "보") or \
(사용자 == "바위" and 컴퓨터 == "가위") or \
(사용자 == "보" and 컴퓨터 == "바위"):
print("이겼어요!")
else:
print("졌어요...")
random.choice로 컴퓨터 선택을 무작위로 정하는 게 핵심이에요. 직접 무작위 로직을 만들지 않아도 한 줄이면 끝나니까 훨씬 편하잖아요.
여기서 막히신다면 댓글로 남겨주세요.
다음 글에서는 파일을 읽고 쓰는 법을 다뤄볼 거예요. 메모장 파일을 파이썬으로 열어서 내용을 읽거나, 결과를 파일로 저장하는 방법인데요. 사실 이것도 오늘 배운 import의 연장선이에요.
제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀
'Application > Python' 카테고리의 다른 글
| [Python] 파이썬 예외처리, try except로 오류 잡는 법 (0) | 2026.05.06 |
|---|---|
| [Python] 파이썬 파일 읽기와 쓰기: open, read, write 한 번에 정리 (0) | 2026.05.04 |
| [Python] 파이썬 함수 심화 - 매개변수와 기본값 한 번에 정리 (0) | 2026.04.28 |
| [Python] 파이썬 함수 기초: def로 만들고 return으로 돌려받기 (0) | 2026.04.27 |
| [Python] 파이썬 튜플과 딕셔너리, 한 번에 정리 (0) | 2026.04.23 |