본문으로 건너뛰기

모듈 불러 쓰기

파이썬 목차파일과 모듈레슨 51 / 59

목차

파이썬이 미리 만들어 둔 도구 상자(표준 라이브러리)를 가져올 때는 import 모듈이름 또는 **from 모듈이름 import 이름**을 씁니다.

print(), len(), int()처럼 늘 바로 쓸 수 있는 내장 함수도 있지만, 제곱근 계산이나 주사위 굴리기, 오늘 날짜 다루기까지 모두 처음부터 꺼내 두면 이름표가 너무 복잡해집니다. 그래서 파이썬은 이런 기능들을 math, random, datetime 같은 **모듈(도구 상자)**에 나누어 담아 두고, 필요한 상자만 import로 가져다 쓰게 합니다.

5단계 중 1단계. 표준 라이브러리 math를 통째로 가져올 때와 안의 함수 이름만 꺼내 올 때 내 이름표가 어떻게 달라지는지 비교합니다.

1가져오는 두 가지 방법 — import와 from ... import

모듈을 가져오는 방법은 상자 통째로 가져오느냐, 상자 안의 도구만 꺼내 오느냐 두 가지입니다.

import math

print(math.sqrt(16))
print(math.ceil(3.2))
실행 결과
4.0
4
  • import math: 내 프로그램에 math라는 상자 이름을 붙입니다. 안에 든 함수를 쓸 때는 math.sqrt(16)(제곱근), math.ceil(3.2)(올림)처럼 마침표(.)로 꺼내 부릅니다.

반대로 자주 쓰는 함수 몇 개만 상자에서 직접 꺼내 오려면 from 모듈 import 이름을 씁니다. 무엇이 찍힐지 먼저 맞혀 보세요.

from math import sqrt, ceil

print(sqrt(25))
print(ceil(4.1))
실행 결과 보기
실행 결과
5.0
5

예상과 다르면 그곳이 배울 곳입니다. from math import sqrt, ceil⁠은 내 이름표에 sqrt와 ceil을 바로 붙여 주므로 앞에 math.를 붙이지 않고 부릅니다.

가져오는 문장내 이름표에 생기는 이름부르는 모양
import mathmathmath.sqrt(16)
from math import sqrtsqrtsqrt(16)

2자주 쓰는 표준 라이브러리 — math · random · datetime

파이썬을 설치하면 함께 들어 있는 대표적인 표준 라이브러리 세 가지입니다.

  • math: 수학 계산 도구입니다. math.sqrt(x)(제곱근), math.ceil(x)(올림), math.floor(x)(내림), 원주율 상수 math.pi가 들어 있습니다.
  • random: 무작위 뽑기 도구입니다. random.randint(a, b)는 a부터 b까지(b 포함!) 정수 하나를 뽑고, random.choice(리스트)는 리스트에서 항목 하나를 뽑습니다.
  • datetime: 날짜와 시각 도구입니다. from datetime import date⁠로 가져와 date(2026, 10, 20)처럼 날짜를 다룹니다.
import random

random.seed(0)
a = ['가위', '바위', '보']
print(random.randint(1, 6))
print(random.choice(a))
실행 결과
4
바위

(위 코드의 random.seed(0)은 실행할 때마다 같은 무작위 순서가 나오도록 씨앗 값을 고정한 줄입니다. 실제로 주사위를 굴릴 때는 seed 줄 없이 random.randint(1, 6)만 씁니다.)

주의할 점은 range(1, 6)이 끝 수 6을 포함하지 않는 것과 달리, random.randint(1, 6)은 양끝 수 1과 6을 모두 포함한다는 점입니다.

예제

날짜 만들어 연·월·일 꺼내기

datetime 모듈에서 date를 가져오면 날짜를 만들고 .year, .month, .day로 연·월·일을 꺼낼 수 있습니다.

from datetime import date

d = date(2026, 10, 20)
print(d)
print(d.year, d.month, d.day)
실행 결과
2026-10-20
2026 10 20

자주 틀리는 곳

1. import math만 하고 math. 없이 함수를 부른다

틀린 생각: import math를 적었으니 sqrt(16)이라고 바로 불러도 파이썬이 알아서 math 안에서 찾아 준다.

import math는 내 이름표에 math라는 상자 이름 하나만 붙여 줄 뿐, 그 안의 sqrt를 바깥 이름표로 꺼내 놓지 않습니다.

import math

print(sqrt(16))
실행 결과
Traceback (most recent call last):  File "main.py", line 3, in <module>    print(sqrt(16))          ^^^^NameError: name 'sqrt' is not defined

맞는 규칙: import math로 가져왔으면 math.sqrt(16)으로 부르고, sqrt(16)으로 바로 부르려면 from math import sqrt⁠로 가져옵니다.

2. from math import sqrt⁠를 쓰고 math.sqrt()로 부른다

틀린 생각: from math import sqrt⁠도 math에서 가져온 것이니 math.sqrt(16)으로 불러도 된다.

from math import sqrt⁠는 sqrt라는 이름만 가져오고 math라는 상자 이름은 붙이지 않습니다.

from math import sqrt

print(math.sqrt(16))
실행 결과
Traceback (most recent call last):  File "main.py", line 3, in <module>    print(math.sqrt(16))          ^^^^NameError: name 'math' is not defined. Did you forget to import 'math'?

내 이름표에는 sqrt만 있고 math는 없어 NameError가 납니다.

맞는 규칙: from math import sqrt⁠로 가져왔을 때는 마침표 없이 sqrt(16)으로만 부릅니다.

3. 변수 이름을 모듈 이름과 같게 짓는다

틀린 생각: import random 아래에서 변수 이름으로 random = 3을 써도 모듈 random은 따로 남아 있다.

모듈 이름도 똑같은 이름표이므로, random = 3을 실행하면 이름 random이 모듈 상자에서 떨어져 정수 3에 다시 붙습니다(규칙 3).

import random

random = 3
print(random.randint(1, 6))
실행 결과
Traceback (most recent call last):  File "main.py", line 4, in <module>    print(random.randint(1, 6))          ^^^^^^^^^^^^^^AttributeError: 'int' object has no attribute 'randint'

random이 정수 3이 되어 버려 randint가 없다는 AttributeError가 납니다.

맞는 규칙: 가져온 모듈 이름(math, random 등)을 일반 변수 이름으로 덮어쓰지 않습니다.

확인 문제

1. 다음 코드를 실행하면 무엇이 출력될까요?

import math
from math import floor

print(math.ceil(2.1))
print(floor(2.9))
힌트

ceil(2.1)은 2.1을 올림한 정수이고, floor(2.9)는 2.9를 내림한 정수입니다.

정답
실행 결과
3
2

2.1을 올림하면 3, 2.9를 내림하면 2가 출력됩니다.

2. math 모듈에서 sqrt 함수를 직접 가져와 마침표 없이 print(sqrt(9))로 부르려고 합니다. 빈칸을 채우세요.

____ math ______ sqrt

print(sqrt(9))
힌트

모듈 안에서 특정 이름만 꺼내 올 때 쓰는 두 키워드입니다.

정답

from math import sqrt⁠입니다.

3. 다음 코드는 math 모듈의 ceil을 쓰려 한 것인데 NameError가 납니다. 두 가지 방법 가운데 하나로 고쳐 보세요.

import math

print(ceil(5.3))
힌트

1번 줄을 그대로 두고 3번 줄을 고치거나, 반대로 3번 줄을 그대로 두고 1번 줄을 from ... import로 고칠 수 있습니다.

정답

3번 줄을 print(math.ceil(5.3))⁠으로 고치거나, 1번 줄을 from math import ceil⁠로 고치면 6이 출력됩니다.

아래 코드에서 math.sqrt(81)과 math.floor(7.8)도 출력해 보세요.

처음 펼 때 약 6MB를 받습니다.컴퓨터에서 해 보기

끝까지 내려오면 저절로 표시됩니다. 이 기기에만 저장합니다.

파이썬 목차로