범위를 벗어난 색인 나열 Python

범위를 벗어난 색인 나열 Python

2022-09-16 last update

6 minutes reading Python
Python에서 IndexError는 가장 일반적으로 발생하는 런타임 오류 중 하나입니다. Python 목록에 없는 인덱스 값을 가져오려고 할 때마다 오류가 발생합니다. 때로는 약간의 디버깅으로 색인 오류를 해결할 수 있습니다. 이 오류가 발생하는 데에는 두 가지 이유가 있습니다. 이 오류의 첫 번째 이유는 목록을 순회하려고 할 때 목록의 인덱스가 0부터 시작한다는 사실을 기억하지 못하는 경우입니다. 둘째, range() 함수를 사용하여 목록을 탐색하지 않을 때입니다. 이 가이드에서는 이 오류에 대해 자세히 설명하고 해결 방법을 제안합니다. 예제를 통해 작동 방식에 대해 논의합니다.

예 1:


이 예에서는 "cars_name"이라는 목록에 있는 모든 요소를 ​​인쇄하고 "목록 색인이 범위를 벗어남"오류가 어떻게 발생하는지 확인합니다. Windows 10에서 Spyder Compiler를 사용하여 이 모든 작업을 수행합니다. 따라서 Spyder IDE를 시작하고 파일 메뉴에서 새 파일을 만들고 프로그램 구현을 위한 추가 프로세스를 진행하면 됩니다.
프로그램 코드에서 먼저 두 개의 변수를 선언하고 초기화했습니다. 첫 번째 변수인 "cars_name"은 콘솔 화면에 표시할 자동차 목록을 저장합니다. "count"변수는 화면에 표시한 요소의 수를 저장하는 데 사용됩니다.
다음으로 while 루프를 사용합니다. while 루프는 "count"에 저장된 인덱스 포인트에서 "cars_name"의 값을 표시합니다. 이 루프는 "count"값이 주어진 조건을 만족할 때까지 반복합니다.
Cars_name = [“Honda”, “Civic”, “Corolla”]

Count = 0

While count <= len(cars_name)

Print(cars_name[count])

Count +=1

파일을 저장하고 이름을 지정한 후 프로그램 코드를 실행하여 오류를 확인합니다. 아래 스크린샷에 오류가 표시되었습니다.

목록의 모든 요소가 콘솔 화면에 표시되지만 "인덱스 오류"가 발생했습니다. "count"값이 주어진 조건을 만족할 때까지 루프가 계속 반복되기 때문에 문제가 발생합니다. 존재하지 않는 cars_name[3]에 대한 최종 순회 값을 확인한다는 의미입니다. 이것은 IndexError를 생성합니다. 이 문제를 해결하기 위해 연산자를 "보다 작음"에서 "미만"으로 변경할 수 있습니다. "count"가 주어진 새 조건을 충족할 때까지만 목록이 순회하도록 합니다. 이동하여 다음과 같이 수정합니다.
Cars_name = [“Honda”, “Civic”, “Corolla”]

Count = 0

While count < len(cars_name)

Print(cars_name[count])

Count +=1

이제 IndexError를 성공적으로 수정했습니다. 파일을 저장하고 실행하고 루프가 제대로 실행되고 있으며 cars_name[3]을 표시하려고 하는지 확인합니다. 이제 성공적인 결과를 볼 수 있습니다.

예 2:


목록을 탐색할 때 range() 문을 추가하는 것을 잊었을 때. 이 목록에서 값을 검색하는 경우 IndexError의 가능성이 있을 수 있습니다.
Student_rollno = [9, 10, 9]

For rollno in student_rollno:

Print(student_rollno[rollno])

이 예에서는 "student_rollno"배열에 있는 모든 요소를 ​​인쇄합니다. 이 배열은 한 학급의 학생 수로 구성됩니다. Spyder 컴파일러의 도움으로 코드를 실행하고 결과를 확인합시다. 다시 비슷한 오류가 발생했습니다.

IndexError가 발생했습니다. "student_rollno"의 출력을 보기 위해 print 문을 보강해 보겠습니다.
Student_rollno = [9, 10, 9]

For rollno in student_rollno:

Print(rollno)

Print(student_rollno[rollno])

다시 "Ctrl+S"를 사용하여 코드를 저장하고 프로그램을 실행하여 다음에 일어난 일을 확인합니다.

"rollno"9가 콘솔 화면에 표시됩니다. 그러나 "rollno"값은 "student_rollno"의 실제 값입니다. 그러나 우리 프로그램에서는 인덱스 번호로 "rollno"를 가져오려고 합니다. 이 문제를 해결하기 위해 여기에 student_rollno 목록을 탐색하는 range() 문이 있습니다. range() 함수는 특정 인덱스 순서로 목록을 생성합니다.
Student_rollno = [9, 10, 9]

For rollno in range (0, len(student_rollno)):

Print(student_rollno[rollno])

다시 프로그램을 실행하고 오류가 수정되었는지 확인합니다.

결론


이 튜토리얼에서는 "목록 색인이 범위를 벗어남"오류의 발생과 해결 방법에 대해 논의했습니다. 오류를 수정하려면 목록에 없는 값에 액세스하지 마십시오. 이제 코드를 컴파일하는 동안 이 오류를 간단하게 해결할 수 있기를 바랍니다.