반응형
파이썬 오류: IndexError
1. 오류 설명
IndexError
는 리스트, 튜플, 문자열과 같은 시퀀스 자료형에서 존재하지 않는 인덱스에 접근하려고 할 때 발생합니다.
즉, 인덱스가 유효한 범위를 벗어나면 이 오류가 발생합니다.
2. 오류 예시
my_list = [1, 2, 3]
print(my_list[3]) # IndexError 발생: 리스트의 유효한 인덱스는 0, 1, 2뿐입니다.
3. 오류 해결책
- 인덱스 범위 확인: 접근하기 전에
len()
함수로 유효한 인덱스 범위를 확인합니다. - 예외 처리 사용:
try-except
블록을 활용해 오류를 처리합니다. - 디버깅 및 로직 점검: 반복문이나 인덱스를 사용하는 코드의 로직을 점검하여 잘못된 접근을 방지합니다.
4. 오류 예제 코드 및 해결 코드
오류 발생 코드
# IndexError 발생 예제
my_list = [10, 20, 30]
index = 5
print(my_list[index]) # IndexError: list index out of range
해결 코드 1: 인덱스 범위 확인
# 인덱스 범위를 확인하고 안전하게 접근
my_list = [10, 20, 30]
index = 5
if 0 <= index < len(my_list):
print(my_list[index])
else:
print(f"Error: 유효하지 않은 인덱스 {index}. 리스트의 길이는 {len(my_list)}입니다.")
해결 코드 2: 예외 처리
# try-except로 오류를 처리
my_list = [10, 20, 30]
index = 5
try:
print(my_list[index])
except IndexError:
print(f"IndexError: 인덱스 {index}는 리스트 범위를 벗어났습니다.")
해결 코드 3: 디버깅 및 로직 점검
# 반복문을 사용할 때 IndexError 방지
my_list = [10, 20, 30]
for i in range(len(my_list) + 2): # 실수로 유효 범위를 초과한 반복문
if i < len(my_list): # 인덱스 확인 추가
print(my_list[i])
else:
print(f"인덱스 {i}는 범위를 벗어났습니다.")
요약
IndexError
는 리스트 등의 인덱스 범위를 초과했을 때 발생합니다. 이 오류를 해결하려면:
- 유효한 범위를 확인하거나,
- 예외 처리로 안전하게 처리하고,
- 코드 로직을 점검하여 오류를 방지합니다.
반응형
'Error(Exception) > ERROR-PYTHON' 카테고리의 다른 글
[python] KeyboardInterrupt (0) | 2024.11.26 |
---|---|
[python] KeyError (0) | 2024.11.25 |
[python] ModuleNotFoundError (0) | 2024.11.23 |
[python] RuntimeError (0) | 2024.11.22 |
[python] ImportError (0) | 2024.11.22 |
댓글