Lees de beschikbare tijd
Zet raw_minutes om naar total_minutes. Toon op regel 1 Beschikbaar: ... minuten met de ingelezen tijd.
Je hebt tijd vrijgemaakt om te leren, maar past je lesplan ook als je een pauze neemt? In deze laatste les bouw je een klein overzicht dat die vraag beantwoordt. Je combineert bestaande bouwstenen; er komt geen nieuwe rekenregel bij.
Een invoer is de informatie waarmee je programma begint. Het resultaat is wat je ermee wilt bepalen. Schrijf daartussen eerst in gewone taal welke stappen nodig zijn: tekst omzetten, hoeveelheden berekenen, een vergelijking maken en de uitkomst tonen.
Bewaar tussenresultaten onder namen die hun betekenis beschrijven. Dan kun je een fout terugzoeken naar een kleine berekening, in plaats van één lange regel te moeten ontleden. Je programma blijft daardoor ook beter te volgen wanneer je het later opnieuw leest.
De regels die met # beginnen zijn commentaar. Python voert die tekst niet uit; ze leggen voor jou als lezer een bedoeling of stap vast. In de editor wijzen ze aan waar je de onderdelen van je tijdsoverzicht uitwerkt.
Stel dat je materialen voor een knutselmiddag verdeelt. Een deel houd je apart, en met de rest maak je pakketten. Het voorbeeld laat zien hoe je van tekst naar een overzicht gaat zonder de antwoorden van jouw tijdsopdracht voor te schrijven.
raw_pieces = "30"
reserved = 6
per_pack = 5
wanted = 4
pieces = int(raw_pieces)
available = pieces - reserved
print(f"Te verdelen: {available}")
print(f"Pakketten: {available // per_pack}")
print(f"Losse stukken: {available % per_pack}")
print(f"Genoeg: {available >= wanted * per_pack}")Te verdelen: 24 Pakketten: 4 Losse stukken: 4 Genoeg: True
De eerste stap maakt van de cijfertekst een integer. Vervolgens berekent het programma hoeveel materiaal na de reserve beschikbaar blijft. De namen houden die twee hoeveelheden uit elkaar: het oorspronkelijke totaal blijft behouden.
Met // tel je volledige pakketten en met % de losse stukken. De vergelijking onderzoekt of de beschikbare hoeveelheid groot genoeg is voor het gewenste aantal pakketten. De f-strings maken zichtbaar wat ieder resultaat betekent.
Traceer het voorbeeld eens zonder het uit te voeren: dertig stukken, zes apart, dus vierentwintig beschikbaar. Daaruit passen vier pakketten van vijf en blijven vier stukken over. Vier pakketten vragen twintig stukken, waardoor de laatste vergelijking waar is.
Soms klopt de operator, maar kies je de verkeerde variabele. Bekijk wat er gebeurt als je de reserve negeert bij het berekenen van het aantal pakketten.
pieces = 30
reserved = 6
per_pack = 5
available = pieces - reserved
print(pieces // per_pack)
print(available // per_pack)6 4
De eerste berekening gebruikt al het materiaal en belooft zes pakketten. De tweede rekent met wat echt beschikbaar is en komt op vier uit. Er verschijnt geen foutmelding, want beide berekeningen zijn geldig; alleen de tweede beantwoordt de praktische vraag.
Gebruik daarom bij elk tussenresultaat de vraag: “Wat stelt deze waarde nu voor?” Bij jouw opdracht moet je de oorspronkelijke totale tijd omzetten naar uren en minuten. Voor de vergelijking met de geplande lessen gebruik je juist de tijd ná de pauze.
De beschikbare minuten komen als tekst binnen via de bekende input()-functie. Codelab test je plan met 95, 87 en 86 minuten; de pauze en de geplande lessen blijven gelijk. Je programma moet dus ook precies genoeg tijd en net te weinig tijd herkennen.
Werk de vier stappen in volgorde af en voer tussendoor je code uit als je een tussenresultaat wilt bekijken. De gevraagde berichten helpen je controleren op welk punt iets afwijkt.
Je programma krijgt deze invoer automatisch. Elke variant begint opnieuw. Alle varianten moeten kloppen.
95
87
86
Zet raw_minutes om naar total_minutes. Toon op regel 1 Beschikbaar: ... minuten met de ingelezen tijd.
Toon hele uren en de rest in minuten op regel 2. Bij 95 minuten is dat Verdeling: 1 uur en 35 minuten.
Bewaar de totale tijd minus break_minutes in available. Toon op regel 3 Na pauze: ... minuten met die waarde.
Vergelijk available met required. Toon Past: True als er genoeg tijd is (ook precies genoeg), anders Past: False.
Je hebt nu de basisbouwstenen gecombineerd. In de volgende module leer je met voorwaarden kiezen welke code wordt uitgevoerd en met lussen werk herhalen.
Voer je code uit en ontdek
wat je hebt gemaakt.
Je hoeft het niet in één keer goed te doen. Na het uitvoeren zie je hier welke stappen al kloppen.