Du tror en negativ indeks gir feil
Handler om: Liste
I mange språk krasjer `liste[-1]`. I Python teller den bakfra og gir siste element. Derfor slipper en regnefeil som gir −1 stille gjennom: du får et svar, bare fra feil ende av lista. Sjekker du at en indeks er innenfor, må du teste `0 <= i < len(liste)` — ikke bare `i < len(liste)`.
Eksempel
Du sjekker om en rute er innenfor rutenettet med `if rad < 3`, og rad = −1 slipper gjennom som siste rad.
Slik tenker du riktig om det
Tegn lista med to sett indekser: 0, 1, 2 forfra og −1, −2, −3 bakfra. Begge er gyldige, så en grensesjekk må stenge begge veier.
Slik ser det ut i kode
Slik gikk det galt
if rad < len(rutenett): # −1 slipper gjennom
return rutenett[rad] Slik fikser du det
if 0 <= rad < len(rutenett): # steng begge ender
return rutenett[rad]