예외 처리와 모듈 기초편
오류에 덜 무너지고, 기능은 더 깔끔하게 나누는 실전형 파이썬의 출발점
- 예외와 오류가 무엇인지 이해합니다.
- try / except의 기본 구조를 익힙니다.
- finally가 언제 필요한지 배웁니다.
- 모듈이 왜 필요한지, import로 어떻게 불러오는지 이해합니다.
- 표준 모듈 예제와 초보자 실수를 통해 실전 감각을 익힙니다.
- 간단한 오류 상황을 try/except로 처리할 수 있습니다.
- 입력값 오류나 파일 처리 오류에 대비하는 기본 코드를 작성할 수 있습니다.
- 필요한 기능을 모듈로 분리하거나 기존 모듈을 불러와 사용할 수 있습니다.
- 다음 장의 실전 응용, 정규표현식, 확장 주제로 넘어갈 준비를 마칠 수 있습니다.
오류는 나쁜 코드의 증거가 아니라, 대비가 필요한 상황 신호입니다
초보자는 프로그램이 오류를 내면 “내 코드가 완전히 틀렸구나”라고 생각하기 쉽습니다. 하지만 실제로는 코드 문법이 완전히 틀린 경우도 있지만, 사용자가 예상과 다른 값을 넣었거나, 파일이 없거나, 0으로 나누는 등의 상황 때문에 오류가 나는 경우도 많습니다. 즉 오류는 단순한 실패가 아니라, 프로그램이 예상하지 못한 입력이나 상태를 만났다는 신호이기도 합니다.
그래서 중요한 것은 오류를 무조건 없애는 것만이 아니라, 어떤 오류가 생길 수 있는지 미리 생각하고 대비하는 것입니다. 예외 처리는 바로 그 대비를 코드로 표현하는 방법입니다.
한눈에 보는 예외 처리의 핵심
try / except: 오류가 날 수 있는 코드를 안전하게 감싸기
예외 처리의 가장 기본 구조는 try 와 except 입니다. 먼저 try 블록 안에서 코드를 실행하고, 그 과정에서 예외가 발생하면 except 블록으로 넘어갑니다.
try:
num = int(input("숫자를 입력하세요: "))
print(10 / num)
except:
print("올바른 숫자를 입력해 주세요")
예외 처리 흐름을 단계별로 이해하기
예외 종류를 구체적으로 나누기
처음에는 단순한 except: 만 써도 되지만, 점차 어떤 예외인지 구분하는 습관을 들이면 더 좋은 코드가 됩니다.
try:
num = int(input("숫자 입력: "))
print(10 / num)
except ValueError:
print("숫자 형태로 입력해야 합니다")
except ZeroDivisionError:
print("0으로는 나눌 수 없습니다")
finally: 마지막에 꼭 실행할 정리 코드
어떤 경우에는 오류가 있든 없든 마지막에 반드시 실행해야 하는 코드가 있습니다. 그럴 때 finally를 사용할 수 있습니다.
try:
file = open("memo.txt", "r", encoding="utf-8")
print(file.read())
except FileNotFoundError:
print("파일이 없습니다")
finally:
print("파일 읽기 시도 종료")
모듈은 코드를 기능별로 나눈 부품 상자입니다
이제 모듈을 봅시다. 프로그램이 커질수록 모든 코드를 하나의 파일에 몰아넣으면 읽기 어렵고, 필요한 기능을 다시 쓰기도 불편해집니다. 이때 관련 있는 함수나 변수들을 별도 파일로 나누어 저장해 두면 훨씬 정리된 구조가 됩니다. 이런 파일 단위의 기능 묶음을 모듈이라고 생각하면 됩니다.
- 기능별로 코드를 나눌 수 있다
- 다른 파일에서 재사용할 수 있다
- 코드가 길어져도 관리가 쉬워진다
import: 모듈 불러오기
모듈을 사용하려면 먼저 불러와야 합니다. 파이썬에서는 import를 사용합니다.
import math
print(math.sqrt(16))
표준 모듈을 써 보면 감이 빨라집니다
import math
print(math.pi)
print(math.sqrt(25))
import random
print(random.randint(1, 6))
내가 만든 함수도 다른 파일로 분리할 수 있습니다
예를 들어 자주 쓰는 계산 함수를 mycalc.py라는 파일에 넣고, 다른 파일에서 불러와 쓸 수 있습니다. 이것이 모듈을 사용하는 가장 직관적인 모습입니다.
def add(a, b):
return a + b
import mycalc
print(mycalc.add(3, 5))
짧은 종합 예제: 예외 처리 + 모듈 사용
import random
try:
num = int(input("1부터 3 사이 숫자를 입력하세요: "))
if num < 1 or num > 3:
print("범위를 벗어났습니다")
else:
print("랜덤 보너스 숫자:", random.randint(1, 10))
except ValueError:
print("숫자만 입력해 주세요")
초보자가 자주 하는 실수 1
try:
num = int(input("숫자: "))
print(10 / num)
except:
print("오류")
초보자가 자주 하는 실수 2
print(math.sqrt(9))
초보자가 자주 하는 실수 3
from math import sqrt
print(math.sqrt(16))
올바른 수정 예시
from math import sqrt
print(sqrt(16))
예외 처리와 모듈 사고 흐름 한눈에 보기
이 장의 핵심 요약
체크리스트
미니 연습문제
- 숫자를 입력받아 100을 그 숫자로 나누되, 0이나 문자가 들어오면 안내 문구를 출력하는 프로그램을 만들어 보세요.
- math 모듈을 사용해 반지름이 5인 원의 넓이를 계산하는 간단한 코드를 작성해 보세요.
- random 모듈을 사용해 1부터 10 사이 숫자 하나를 출력하는 코드를 작성해 보세요.
'학습 자료 글 > 파이썬 시작하기' 카테고리의 다른 글
| [파이썬 기초 시리즈 외전1] 메서드·함수·라이브러리·핵심 개념 총정리 (1) | 2026.03.24 |
|---|---|
| [파이썬 기초 시리즈 12]정규표현식과 실전 응용 기초편 (0) | 2026.03.24 |
| [파이썬 기초 시리즈 10]파일 처리 기초편 (0) | 2026.03.24 |
| [파이썬 기초 시리즈 9]입력과 출력 기초편 (1) | 2026.03.24 |
| [파이썬 기초 시리즈 8]함수 기초편 (0) | 2026.03.23 |