Du starter maks-søket på 0

Handler om: Akkumulator, Søk (lineært)

Når du leter etter det største tallet, er det fristende å skrive `storst = 0` før løkka. Det virker så lenge alle tallene er positive — men er alle negative, blir svaret `0`, et tall som ikke engang finnes i lista. Startverdien må hentes fra dataene selv: `storst = tall[0]`.

Eksempel

Du finner høyeste temperatur i [-8, -3, -11] og får 0 — en temperatur som aldri ble målt.

Slik tenker du riktig om det

Spør: «kan svaret være et tall som ikke står i lista?» Starter du på 0, har du smuglet inn en kandidat utenfra. Første element er alltid en lovlig kandidat.

Slik ser det ut i kode

Slik gikk det galt

storst = 0                 # gjettet startverdi
for t in tall:
    if t > storst:
        storst = t

Slik fikser du det

storst = tall[0]           # start i dataene
for t in tall[1:]:
    if t > storst:
        storst = t

Les om dette i boka

↓↑ naviger Enter åpne ShiftEnter ny fane Esc lukk
Velg tema
Skala