Ga naar hoofdinhoud

3.3 Bouwsteen 1 — twee variabelen tegelijk bijhouden

Leerdoel: je kunt twee accumulators in één keer initialiseren, beide op lijst[0].

Wat we willen

Twee variabelen — klein en groot — die allebei starten op een veilige waarde (een waarde die zeker in de lijst staat).

Voorspel

Wat denk je dat dit print?

lijst = [5, 2, 8, 1, 7, 4]
klein = lijst[0]
groot = lijst[0]
print(klein, groot)
Antwoord
5 5

Beide variabelen krijgen dezelfde waarde — het eerste element van de lijst. Dat is op dit moment nog niet het echte min en max — we hebben namelijk de rest van de lijst nog niet bekeken. Het is een veilige beginschatting: een waarde die zeker in de lijst staat.

Run

Python
Code-omgeving wordt voorbereid…

Pythonische korte notatie

Python staat meervoudige toekenning toe. Op één regel:

klein = groot = lijst[0]

Beide variabelen krijgen dezelfde waarde. Korter — maar betekent precies hetzelfde.

Python
Code-omgeving wordt voorbereid…

Waarom niet klein = 999, groot = -999?

Soms zie je code als:

klein = 999 # hoog beginnen — wordt vanzelf vervangen door kleinere
groot = -999 # laag beginnen — wordt vanzelf vervangen door grotere

Werkt alleen als je weet dat alle waardes tussen -999 en 999 liggen. Bij [1000, 2000, 3000] krijg je dan groot = -999 als antwoord — fout.

Conclusie: lijst[0] is veiliger.

Experimenteer

Test wat er gebeurt met lijst[0] op verschillende lijsten:

Python
Code-omgeving wordt voorbereid…

Bouwsteen model

Twee startwaardes

Zet klein en groot allebei op het eerste element.

Stap 0/6Vergelijkingen 0Resultaat min 5, max 5
05min max
12
28
31
47
54
Startwaardes

We starten met 5 als minimum en maximum.

In de eerste stap wijzen min en max naar dezelfde echte lijstwaarde.

Feedback
standaard lijst

Input start_min_en_max([5, 2, 8])

Verwacht [5, 5]

negatieve lijst

Input start_min_en_max([-3, -1, -7])

Verwacht [-3, -3]

een element

Input start_min_en_max([42])

Verwacht [42, 42]

Wat nu nog mist

We hebben startwaardes. Maar de variabelen veranderen nog niet — we doen nog niets met de rest van de lijst. In de volgende stap voegen we de updates toe.

Door naar bouwsteen 2: twee updates per element.