Python 초보자가 가장 자주 만나는 에러 7가지와 해결법 (SyntaxError, IndentationError, NameError 등)

시작하며

Python을 처음 배울 때 가장 당황스러운 순간은 바로 빨간 에러 메시지가 터미널을 가득 채울 때입니다. 하지만 걱정하지 마세요. 대부분의 초보자가 겪는 에러는 패턴이 정해져 있고, 해결법도 간단합니다. 이 글에서는 Python 입문자가 가장 자주 마주치는 7가지 에러와 그 해결 방법을 실전 예제와 함께 알아보겠습니다.

1. SyntaxError: 문법 오류의 기본

증상

if x > 5
    print("큰 수")
SyntaxError: invalid syntax

원인과 해결

콜론(:) 누락이 가장 흔한 원인입니다. Python은 조건문, 반복문, 함수 정의 뒤에 반드시 콜론이 필요합니다.

# 올바른 코드
if x > 5:
    print("큰 수")

다른 흔한 케이스

  • 괄호/따옴표 미닫힘: print("안녕하세요"
  • 키워드 철자 오류: whlie 대신 while
  • 잘못된 들여쓰기 혼용 (탭과 스페이스)

2. IndentationError: 들여쓰기의 함정

증상

def greet():
print("안녕")
    print("반가워")
IndentationError: expected an indented block

원인과 해결

Python은 들여쓰기로 코드 블록을 구분합니다. 함수, 반복문, 조건문 내부는 반드시 들여쓰기해야 합니다.

def greet():
    print("안녕")  # 4칸 들여쓰기
    print("반가워")

: VS Code나 PyCharm 같은 IDE는 자동으로 들여쓰기를 맞춰줍니다. 텍스트 에디터 사용 시 “스페이스 4칸” 규칙을 기억하세요.

3. NameError: 정의되지 않은 변수

증상

print(name)
NameError: name 'name' is not defined

원인과 해결

변수를 사용 전에 정의하지 않았거나, 철자가 틀렸을 때 발생합니다.

# 해결 1: 변수 먼저 정의
name = "홍길동"
print(name)

# 해결 2: 철자 확인
user_name = "김철수"
print(user_name)  # username (X)

함수에서도 주의

def calculate():
    result = 10 + 20

print(result)  # NameError!

함수 내부 변수는 함수 밖에서 사용할 수 없습니다 (스코프 문제).

4. IndexError: 리스트 범위 초과

증상

fruits = ["사과", "바나나"]
print(fruits[2])
IndexError: list index out of range

원인과 해결

Python 리스트는 0부터 시작합니다. 위 예제에서 인덱스는 0, 1만 유효합니다.

fruits = ["사과", "바나나"]
print(fruits[0])  # "사과"
print(fruits[1])  # "바나나"
print(len(fruits))  # 2 (길이 확인)

안전한 접근법

if len(fruits) > 2:
    print(fruits[2])
else:
    print("인덱스 2는 존재하지 않음")

5. KeyError: 딕셔너리 키 오류

증상

user = {"name": "Alice", "age": 25}
print(user["email"])
KeyError: 'email'

원인과 해결

딕셔너리에 존재하지 않는 키에 접근할 때 발생합니다.

# 해결 1: get() 메서드 (기본값 반환)
print(user.get("email", "이메일 없음"))  # "이메일 없음"

# 해결 2: 키 존재 여부 확인
if "email" in user:
    print(user["email"])

6. ModuleNotFoundError: 모듈 임포트 실패

증상

import pandas
ModuleNotFoundError: No module named 'pandas'

원인과 해결

라이브러리가 설치되지 않았거나, 가상환경이 활성화되지 않았을 때 발생합니다.

# 해결: pip로 설치
pip install pandas

# 가상환경 확인
which python  # 현재 Python 경로 확인

자주 하는 실수

import Pandas  # 대소문자 틀림 (pandas가 맞음)
import panads  # 철자 오류

7. TypeError: 타입 불일치

증상

age = "25"
print(age + 5)
TypeError: can only concatenate str (not "int") to str

원인과 해결

문자열과 숫자를 직접 연산할 수 없습니다.

# 해결 1: 타입 변환
age = "25"
print(int(age) + 5)  # 30

# 해결 2: 문자열 결합
print(age + str(5))  # "255"

타입 확인법

type(age)  # <class 'str'>
type(5)    # <class 'int'>

에러 대응 전략

단계 행동
1 에러 메시지 마지막 줄을 먼저 읽기
2 파일명과 줄번호 확인 (예: File "test.py", line 5)
3 해당 줄과 바로 앞 줄 함께 점검
4 에러 타입으로 Google 검색 (영어로)

마무리

이 7가지 에러만 정복해도 Python 초보 단계의 80% 문제를 해결할 수 있습니다. 에러는 실력 향상의 기회입니다. 다음 편에서는 TypeError, ValueError, AttributeError 같은 중급 에러를 실전 디버깅 관점에서 다뤄보겠습니다.

기억하세요: 에러 메시지는 적이 아니라 Python이 보내는 힌트입니다. 천천히 읽고, 패턴을 익히면 누구나 능숙한 디버거가 될 수 있습니다!

python 완전 초보를 위한 자주 발생하는 에러 유형 및 해결방법 모음 시리즈 (1/2편)
다음 편 준비 중…
python 완전 초보를 위한 자주 발생하는 에러 유형 및 해결방법 모음 시리즈 (1/2편)

이 글이 도움이 되셨나요? ☕

Buy me a coffee

코멘트

“Python 초보자가 가장 자주 만나는 에러 7가지와 해결법 (SyntaxError, IndentationError, NameError 등)” 에 하나의 답글

  1. […] python 완전 초보를 위한 자주 발생하는 에러 유형 및 해결방법 모음 시리즈 (2/2편) ← 이전: Python 초보자가 가장 자주 만나는 에러 7가지와 해결법 (SyntaxError,… […]

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

TODAY 94 | TOTAL 94