Ga naar hoofdinhoud

Bouwsteen 2 — door de lijst lopen en updaten

Leerdoel: je voegt een for-lus toe rondom de vergelijking uit bouwsteen 1, zodat elk element wordt vergeleken.

Wat we willen

We hebben vergelijken-en-updaten voor één getal. Nu willen we dat doen voor elk getal in de lijst.

Voorspel

Wat denk je dat dit print?

lijst = [3, 7, 2, 9, 4]
max_tot_nu_toe = 0

for waarde in lijst:
if waarde > max_tot_nu_toe:
max_tot_nu_toe = waarde

print(max_tot_nu_toe)
Antwoord
9

Loop het mee:

waardemax_tot_nu_toe vóórcheckmax_tot_nu_toe na
303 > 0 → ja3
737 > 3 → ja7
272 > 7 → nee7
979 > 7 → ja9
494 > 9 → nee9

Eindwaarde: 9.

Run

Python
Code-omgeving wordt voorbereid…

Experimenteer — een probleem ontdekken

Verander de lijst in [-3, -1, -7]. Wat krijg je nu?

Python
Code-omgeving wordt voorbereid…
Wat klopt er niet?

Output: 0. Maar 0 staat niet in de lijst! Het echte maximum is -1.

Wat ging er mis? Alle waardes in de lijst zijn negatief — geen enkele is groter dan onze startwaarde 0. Dus de if was nooit waar, en max_tot_nu_toe is nooit gewijzigd. We krijgen onze startwaarde terug.

Bug: onze startwaarde 0 is onveilig. De fix komt in de volgende bouwsteen.

Wat nu nog mist

We hebben een werkend principe — maar onze startwaarde is fout. In de volgende stap kiezen we een betere.

Door naar bouwsteen 3: een veilige startwaarde →