반응형
파이썬 오류 메시지, 이렇게 이해하면 쉽습니다
― 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는 파이썬 학습 중 가장 자주 접하게 되는 대표적인 오류이므로, 이번 기회에 잘 정리해 두시면 분명 도움이 될 것입니다.
반응형
'Linuxpia > 웹 프로그램' 카테고리의 다른 글
파이썬에서 바이트열을 정수로 변환 (2) | 2025.04.21 |
---|---|
big-endian과 little-endian (4) | 2025.04.20 |
[웹 API] JSON(JavaScript Object Notation)은? (32) | 2024.03.15 |
[웹 API] JSON 객체와 파이썬 딕셔너리의 유사점과 차이점 (46) | 2024.03.14 |
[웹 API] REST API와 스트리밍 API (43) | 2024.03.13 |