← RU Pythoncursus

Geld maakt gelukkig

In deze opdracht gaan we aan de slag met geld. We representeren geld hier met twee variabelen, namelijk hele euro's en losse centen. We gaan stapsgewijs twee bedragen aan de gebruiker vragen en vervolgens bij elkaar optellen. Input van de gebruiker kun je krijgen met de input()-functie.

  1. Bedenk een leuk bedrag en representeer die in je Pythonprogramma met twee variabelen (euro's en centen). Print dit bedrag op een nette manier (bijvoorbeeld: "Dat kost €10.17") zoals je in de vorige opdracht geleerd hebt.

  2. Vraag de gebruiker met een print en input om ook een bedrag in te voeren. Je kunt eerst om hele euro's vragen en daarna om centen. Let er op dat als de gebruiker een ongeldig bedrag invult (bijvoorbeeld €15,-19 of een string tekst) dat je nogmaals om een geldig bedrag moet vragen. Denk hier aan de types van de variabelen (je moet dus controleren of de invoer van de gebruiker omgezet kan worden naar een integer). Je kunt hiervoor de boolean functie isnumeric gebruiken die je op strings kunt aanroepen, bijvoorbeeld: '10'.isnumeric() of euros.isnumeric(). Je hebt voor deze opdracht een loop nodig met boven in de loop een conditie die controleert of het bedrag correct is.

  3. Tel de twee bedragen van 1. en 2. nu bij elkaar op en print het resultaat naar de gebruiker. Let er op dat als je over de "centenlimiet" heengaat, je een euro bij het resultaat op moet tellen. €4,80 + €2,25 is bijvoorbeeld €7,05. Je zult hier aan de slag moeten met if-statements.

  4. Breid deze functionaliteit nu uit naar meerdere bedragen. Blijf door middel van een while-loop vragen om nieuwe bedragen op te tellen bij het totaalbedrag. Als de gebruiker eind invoert, print je het totaalbedrag uit.

  5. Zorg nu dat je programma niet vanzelf afsluit; na eind en het printen van het totaalbedrag dien je je bedrag op 0 te zetten en opnieuw om een te vragen. Gebruik hiervoor een while True loop.

  6. Maak nu een centraal kassasysteem met vijf kassa's. Je programma moet nu, vóór euro's en centen, ook als invoer om een kassanummer vragen. Wederom, als de gebruiker na invoeren van het kassanummer eind invoert, dient het totaalbedrag van slechts die kassa uitgeprint te worden, en dient het totaalbedrag "genuld" te worden.

    HINT: gebruik een dictionary met als "key" het kassanummer en als "value" het bedrag. Dit kan bijvoorbeeld met kassas = {"a": 0, "b": 2}, dan is de variabele kassas["a"] gelijk aan 0 en kassas["b"] gelijk aan 2, de waardes kunnen natuurlijk veranderd worden met bijvoorbeeld kassas["a"] = 3.