Ga naar hoofdinhoud

Bouwsteen 2 — beide accumulators updaten

Leerdoel: je voegt een for-lus met twee vergelijkingen per element toe, zodat zowel klein als groot aangepast worden.

Wat we willen

Per element checken: is het kleiner dan onze huidige klein? Is het groter dan onze huidige groot? Zo ja → updaten.

Voorspel

Wat denk je dat dit print? Volg met pen en papier mee.

lijst = [5, 2, 8, 1, 7, 4]
klein = groot = lijst[0]

for waarde in lijst:
if waarde < klein:
klein = waarde
elif waarde > groot:
groot = waarde

print(klein, groot)
Antwoord
1 8

Tabel:

waardeklein vóórgroot vóóractieklein nagroot na
555geen update55
2552 < 5 → klein = 225
8258 > 5 → groot = 828
1281 < 2 → klein = 118
7187 > 8? nee — geen update18
4184 < 1? nee — geen update18

Eind: klein = 1, groot = 8. ✅

Run

Python
Code-omgeving wordt voorbereid…

Waarom elif en niet twee aparte if's?

Twee aparte if's zou ook werken — maar dan doe je voor elk element twee vergelijkingen, ook als de eerste al raak was. Met elif slaan we de tweede check over als de eerste al een update deed.

Waarom is elif veilig?

Een waarde kan niet tegelijk kleiner zijn dan klein én groter dan groot. Want: klein <= groot. Dus als waarde < klein (kleiner dan de huidige ondergrens), dan zeker waarde < groot — en dus zeker niet waarde > groot. De elif-check kunnen we veilig overslaan.

Experimenteer

Test extreme inputs:

Python
Code-omgeving wordt voorbereid…
Wat zie je?
  • Standaard lijst → klein=1, groot=8.
  • Eén element → klein=groot=42 (de lus doet 1 iteratie zonder updates).
  • Alleen negatief → klein=-9, groot=-1. Geen bug: we starten op lijst[0].
  • Allemaal gelijk → klein=groot=3.

Wat nu nog mist

We hebben de logica. Maar we printen alleen — we geven de waardes niet terug. In de volgende stap stoppen we het in een functie die een tuple returnt.

Door naar bouwsteen 3: tuple teruggeven →