Linuxpia/웹 프로그램

파이썬 오류 메시지, 이해 방법

Linuxpia4U 2025. 4. 19. 19:41
반응형

파이썬 오류 메시지, 이렇게 이해하면 쉽습니다

― IndentationError 와 ValueError 해석과 해결 방법 ―

프로그래밍을 하다 보면 누구나 한 번쯤은 마주치는 것이 오류 메시지입니다.


파이썬은 특히 오류 메시지를 아주 친절하게 보여주지만, 영어로 되어 있어 처음엔 당황할 수 있습니다. 이번 글에서는 제가 직접 연습 중에 만난 두 가지 대표적인 오류 메시지를 예로 들어, 그 뜻과 해결 방법을 함께 정리해 보겠습니다.


1. IndentationError: 들여쓰기 오류

먼저 살펴볼 오류는 다음과 같습니다.

IndentationError: expected an indented block after 'with' statement on line 1

해석

  • IndentationError는 '들여쓰기 오류'를 뜻합니다.
  • 'with 문 다음에는 들여쓰기 된 코드 블록이 와야 한다'고 알려주고 있습니다.
  • 문제의 줄은 코드의 1번째 줄입니다.

잘못된코드 예

with open('output.txt', 'w') as f:
f.write('Hello~')  # 오류 발생

이 코드에서 f.write()는 with 문 아래에 있어야 하므로 반드시 들여쓰기를 해주어야 합니다. 파이썬은 들여쓰기를 통해 코드의 구조를 파악하기 때문에, 이것이 매우 중요합니다.

올바른 코드

with open('output.txt', 'w') as f:
    f.write('Hello~')  # 이렇게 들여쓰기 해야 함

간단한 차이지만, 이 들여쓰기 하나 때문에 실행이 되지 않는다는 점이 파이썬의 특징입니다.


 

2. ValueError: 잘못된 값 오류

이번에는 숫자 변환과 관련된 오류입니다.

ValueError: invalid literal for int() with base 10: 'abcd'

해석

  • ValueError는 '값에 문제가 있다'는 오류입니다.
  • 'abcd'라는 글자는 정수(int) 로 바꿀 수 없기 때문에 문제가 생긴 것입니다.
  • 여기서 base 10은 우리가 흔히 쓰는 10진수를 뜻합니다.

잘못된 코드 예

s = 'abcd'
n = int(s)  # 오류 발생

int() 함수는 '123'처럼 숫자 모양의 문자열만 정수로 바꿀 수 있습니다. 'abcd'는 숫자가 아니므로 에러가 납니다.

해결 방법

에러가 나지 않도록 하려면 값을 검사하거나, 예외 처리를 해주면 됩니다.

 

1) 숫자인지 먼저 확인

if s.isdigit():
    n = int(s)
else:
    print("숫자가 아닙니다.")

2) 예외 처리

try:
    n = int(s)
except ValueError:
    print("정수로 바꿀 수 없는 값입니다.")

마무리하며

프로그래밍에서 오류는 적이 아니라 친구입니다.


오류 메시지를 읽고, 그 의미를 차근차근 이해해 나가면 실력이 훨씬 빨리 늘어납니다. 오늘 살펴본 IndentationError와 ValueError는 파이썬 학습 중 가장 자주 접하게 되는 대표적인 오류이므로, 이번 기회에 잘 정리해 두시면 분명 도움이 될 것입니다.

 

반응형