Hva er IndexError i Python?

Hva er IndexError i Python?


Python inneholder noen innebygd feil som oppstår når programmerere utføre enkle feil. En slik feil, en IndexError, oppstår når sammensatte datatyper er manipulert feil. For å forstå hva en IndexError hindrer, må en programmerer vet hvordan sammensatte datatyper fungerer, når feilen oppstår, og hvordan du kan unngå feil helt.

Lister og Tuppel datatyper

I Python, List og tuppel datatyper oppfører seg som sammensatte datatyper, med flere referanser til ulike verdier. For eksempel,

x = [ '1', '2', '3']

y = ( "1", "2", "3")

"X" variabel representerer en liste, merket med hakeparenteser. "Y" representerer en Tuppel. Selv om det er forskjeller mellom de to datatypene, de både holder variable datamengder (i dette tilfelle begge holde verdiene "1, 2, 3").

Indeks

For å hente verdier fra en liste eller tuppel, må programmereren vite indeksen av verdien. Gitt listen

x = [ '1', '2', '3']

verdiene okkupere tre indekser. Alle indeksene for sammensatte datatyper starter med tallet null. Så variabel x har tre verdier på tre indekser: null, ett og to. En programmerer vil hente en verdi ved å referere til den variable og verdien indeks i parentes. For å hente verdi fra listen, vil den korrekte referansen være

x [0]

Som representerer den første indeks over listen x.

Utenfor rekkevidde Indekser

Fordi en liste eller enhver forbindelse typen bare har begrenset indekser (det som inneholder data, eller har blitt satt til side for data), en programmerer kan utilsiktet forsøke å få tilgang til en indeks utenfor rekkevidden av listen. I Python, dette forsøket vil kaste en feil, kalt en IndexError. For eksempel listen x har bare tre indekser (null, en, og to). I løpet av et program, et forsøk på tilgang til en indeks utover til kan oppstå. I dette tilfelle oppstår det en IndexError.

eksempler

Et enkelt eksempel er en enkel feil tilgang til en utenfor området indeksen på en liste:

y = x [3]

Dette vil kaste en IndexError (x har ingen indeks "3"). En indeks feil kan oppstå ved en feiltakelse som en del av en loop:

i = 0;

mens i <= 4:

print x [i]

i + = 1

Når de variable "i" trinn tre, vil sløyfen forsøke å skrive ut x [3] og kaste en IndexError. For å unngå dette scenariet, bruk "for" loop struktur, som alltid ut bare de eksisterende indekser i en liste:

for y i x:

print y