Je hebt zojuist geleerd hoe je een subtotaal kan bijhouden in een for-lus. Je kan hieronder nog eends de uitleg lezen.
Stel dat je een lijst hebt met prijzen van producten die je in een winkelmandje hebt gedaan, en je wilt weten wat het totaalbedrag is dat je moet betalen. Je kan dan een variabele gebruiken om het subtotaal bij te houden terwijl je door de lijst van prijzen loopt.
We kunnen dit vergelijken met hoe je dit in je hoofd zou doen als je in de supermakt zou zijn. Je begint met een totaal van 0 euro, en elke keer dat je een nieuw product ziet, tel je de prijs van dat product op bij het totaal dat je al hebt. Op die manier houd je een lopend totaal bij van hoeveel je moet betalen. Je doet dus bij ieder nieuw product dat je ziet de volgende berkening:
(nieuw) totaal = (oud) totaal + prijs (van nieuw product).
Hier zie je hoe dit eruit ziet in Python met een gegeven lijst van prijzen:
prijzen = [10.99, 5.49, 3.50]
totaal = 0
for prijs in prijzen:
totaal = totaal + prijs
print(totaal)
Wat gebeurt hier?
[10.99, 5.49, 3.50] wordt opgeslagen in de variabele prijzen.totaal wordt geïnitialiseerd met de waarde 0.prijzen.prijs de waarde 10.99.totaal = totaal + prijs, wordt uitgevoerd, waardoor totaal nu de waarde 0 + 10.99 = 10.99 heeft.prijs de volgende waarde, namelijk 5.49.totaal = totaal + prijs, wordt uitgevoerd, waardoor totaal nu de waarde 10.99 + 5.49 = 16.48 heeft.prijs de volgende waarde, namelijk 3.50.totaal = totaal + prijs, wordt uitgevoerd, waardoor totaal nu de waarde 16.48 + 3.50 = 19.98 heeft.Op het scherm zie je dus verschijnen:
19.98
Je gaat dit nu zelf toepassen.
Je krijgt onderstaande code:
prijzen = [10.99, 5.49, 3.50, 9.99, 2.50]
geld_over_in_portemonnee = 70
for ____ in ____:
geld_over_in_portemonnee = ____
print(geld_over_in_portemonnee)
Vervang de underscores met het nodige zodat het volgende op het scherm verschijnt:
37.53
(Vervang enkel de underscores, laat de rest van de code zoals het is. Laat de underscores in de variabele geld_over_in_portemonnee staan, je moet enkel de langere underscores vervangen.)