? Python inneholder noen innebygde 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 arbeid, når feilen oppstår , og hvordan du kan unngå feilen helt. Lister og Tuppel datatyper
I Python , listen og tuppel datatyper oppfører seg som sammensatte datatyper , med flere referanser til ulike verdier . For eksempel , etter
x = [ '1 ' , '2' , '3 ']
y = ( '1 ' , '2 ' , '3' )
< p > Den " x " variable representerer en liste , merket med klammer . "Y " representerer en Tuppel . Mens det er forskjeller mellom de to typer data , de begge holder variable mengder data (i dette tilfellet er både holder verdiene "1 , 2, 3 ").
Index
for å hente verdier fra en liste eller tuppel , må programmereren vet indeksen av verdien. Gitt listen
x = [ '1 ' , '2' , '3 ']
verdiene okkupere tre indekser. Alle indekser for sammensatte datatyper starter med tallet null. Så variabel x har tre verdier på tre indekser : null , en og to . En programmerer vil hente en verdi ved å referere til variabelen og verdien -indeksen i parentes . Å hente verdi fra listen , vil den korrekte referansen være
x [ 0 ]
Som representerer den første indeksen liste x .
out of Range indekser
Fordi en liste eller enhver forbindelse typen bare har begrenset indeksene ( det som inneholder data , eller har blitt satt til side for data) , kan en programmerer uforvarende forsøke å få tilgang til en indeks utenfor utvalg av listen. I Python , vil dette forsøket melder feil , kalt en IndexError . For eksempel har listen x kun tre registre ( ingen, én og to). I løpet av et program , et forsøk på å få tilgang til en indeks utover til kan oppstå. I dette tilfellet oppstår det en IndexError
Eksempler
Et enkelt eksempel er en enkel feilaktig tilgang til en utenfor rekkevidde indeks på en liste : .
< P > y = x [ 3 ]
p Dette vil kaste en IndexError ( x har ingen indeks "3" ) . En indeks kan oppstå feil ved en feiltakelse som en del av en loop : en
i = 0;
mens jeg < = 4 : en
print x [ i]
< p> i + = 1
Når de variable "i" trinn til tre, vil løkken forsøke å skrive x [ 3 ] og kaste en IndexError . For å unngå dette scenariet , kan du bruke " for " loop struktur, som alltid skriver bare de eksisterende indekser i en liste : en
for yi x : en
print y