? Python indeholder et par indbyggede fejl, der opstår , når programmører udføre enkle fejl. En sådan fejl , en IndexError , opstår, når sammensatte datatyper er manipuleret forkert . For at forstå, hvad et IndexError forhindrer skal en programmør ved, hvor sammensatte datatyper arbejde , når fejlen opstår , og hvordan man undgår fejlen helt. Lister og Tuple datatyper
Python, Liste og tupel datatyper opfører sig som sammensatte datatyper , med flere referencer til forskellige værdier. For eksempel , Amerikas
x = [ '1 ' , '2' , '3 ']
y = ( '1' , '2 ' , '3' )
< p > Den " x " variable repræsenterer en liste , der betegnes med firkantede parenteser. "Y " repræsenterer en Tuple . Selv om der er forskelle mellem de to datatyper , de begge holder varierende mængder af data (i dette tilfælde , begge holder værdierne "1 , 2, 3").
Index
< br >
for at hente værdier fra en liste eller tupel , skal programmøren kende indekset for værdien. Da listen
x = [ '1 ' , '2' , '3 ']
værdierne besætte tre indekser. Alle indeks for sammensatte datatyper starter med tallet nul . Så variabel x indehaver af tre værdier ved tre indeks : nul, et og to . En programmør vil hente en værdi ved at referere variablen og værdien indeks i parentes . For at hente værdien en fra listen , vil den korrekte angivelse være
x [0]
Hvilket repræsenterer den første indeks liste x.
out of Range indices
Fordi en liste eller enhver forbindelse typen kun har begrænset indeks (det, der indeholder data , eller er blevet afsat til data) , kan en programmør uforvarende forsøge at få adgang et indeks uden for vifte af listen . I Python, vil dette forsøg smide en fejl , kaldet en IndexError . For eksempel kun listen x har tre indeks ( nul, en og to). I løbet af et program , til et forsøg på adgang til et indeks over at måtte forekomme. I dette tilfælde sker en IndexError
Eksempler
Et simpelt eksempel er en simpel fejlagtig adgang til en ud af rækkevidde indeks på en liste : .
< P > y = x [3]
Dette vil kaste en IndexError (x har ingen indeks " 3"). Et indeks kan opstå fejl uforvarende som en del af en løkke : Hej
i = 0;
mens jeg < = 4 : Hej
print x [i]
< p> i + = 1
Når variablen "i" trin til tre, vil løkken forsøge at udskrive x [3], og smide en IndexError . For at undgå dette scenario , skal du bruge "for" loop struktur, som altid udskriver kun de eksisterende indeks i en liste : Hej
for y i x : Hej
print y
< br >