본문 바로가기
Error(Exception)/ERROR-PYTHON

[python] IndexError

by 조조군 2024. 11. 24.
반응형

파이썬 오류: 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는 리스트 등의 인덱스 범위를 초과했을 때 발생합니다. 이 오류를 해결하려면:

  1. 유효한 범위를 확인하거나,
  2. 예외 처리로 안전하게 처리하고,
  3. 코드 로직을 점검하여 오류를 방지합니다.
반응형

'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

댓글