← Python/Kiezen en herhalen
Les 6 van 8
MODULE 02 · 06◷ 20 min

Stop of sla een ronde over

Na deze les kun je
  • Een volledige lus met break verlaten
  • Alleen een ronde met continue overslaan
  • Alleen verwerkte waarden meetellen

Je verwerkt genummerde tickets, maar één ticket is ingetrokken en verderop moet je stoppen voor een pauze. Het ingetrokken ticket overslaan is iets anders dan al het resterende werk laten liggen. Python heeft voor die twee bedoelingen verschillende opdrachten.

Twee soorten onderbreking

Met break verlaat je de lus waarin je op dat moment zit. De resterende opdrachten van die ronde en de volgende rondes van die lus worden overgeslagen. Het programma gaat daarna verder bij de code ná de lus.

Met continue sla je alleen de rest van de huidige ronde over. In een for-lus gaat Python vervolgens door naar de volgende beschikbare waarde. De opdrachten die eerder in die ronde al zijn uitgevoerd, worden daardoor niet ongedaan gemaakt.

De plaats van de controles is dus belangrijk. Als je een ticket niet wilt verwerken, controleer dat dan voordat je het afdrukt of bij een totaal optelt. Anders kan een overgeslagen ticket toch al in je overzicht terechtgekomen zijn.

Een onderbreking bij de balie

In het voorbeeld is ticket drie ingetrokken. Zodra ticket zes aan de beurt komt, stopt de medewerker met deze reeks; één, twee, vier en vijf kunnen wel worden afgehandeld.

Eén ticket overslaan, later stoppen
for ticket in range(1, 8):
    if ticket == 6:
        break
    if ticket == 3:
        continue
    print(ticket)
print("Pauze")
Verwachte uitvoer
1
2
4
5
Pauze

Bij drie voert Python continue uit en bereikt de print eronder niet. De volgende ronde met vier gaat gewoon verder. Bij zes voert Python break uit, waardoor ook zeven niet meer aan bod komt.

Het bericht Pauze staat buiten de lus. Het verschijnt dus nadat het werk met break is onderbroken. Break stopt hier de lus, niet het hele programma.

Lees de voorwaarden van boven naar beneden zoals Python dat doet. De stopcontrole bepaalt of je überhaupt verder wilt met deze reeks. Daarna beslist de tweede controle of de huidige waarde bruikbaar is.

Overslaan is niet hetzelfde als stoppen

Als je voor een ingetrokken ticket per ongeluk break gebruikt, verdwijnen ook de latere tickets uit de verwerking. Dit voorbeeld moet alleen drie overslaan, maar doet dat niet.

Break stopt ook de volgende tickets
for ticket in range(1, 6):
    if ticket == 3:
        break
    print(ticket)
Verwachte uitvoer
1
2

Je ziet alleen één en twee. Het programma verlaat bij drie de hele lus en bereikt vier en vijf nooit. Vervang de onderbreking door continue wanneer je de volgende tickets nog wel wilt behandelen.

Dat verschil zie je niet altijd bij het laatste getal van een reeks. Kies daarom bij het controleren van je code een over te slaan waarde met nog andere waarden erachter. Dan kun je vaststellen of die volgende rondes werkelijk doorgaan.

Alleen verwerkte waarden tellen

Een teller voor afgehandelde tickets hoort na de controles te staan, net als de optelling bij een som. count += 1 telt één verwerkt item; total += number telt de waarde van dat item erbij. Dat zijn verschillende samenvattingen van dezelfde verwerking.

Voor de opdracht moet je veelvouden van drie herkennen. Met number % 3 == 0 vraag je of delen door drie geen rest oplevert. Zo kun je de bekende restbewerking gebruiken om een groep getallen over te slaan.

Nu jij

Doorloop de ingelezen reeks, stop boven de opgegeven grens en sla veelvouden van drie over. Houd het tekstspoor, het aantal, de som en de laatste verwerkte waarde bij. Als niets verwerkt wordt, blijven de vooraf ingestelde beginwaarden gelden.

Testinvoer · 4 varianten

Je programma krijgt deze invoer automatisch. Elke variant begint opnieuw. Alle varianten moeten kloppen.

Stop binnen de reeks
8
5
Stop vóór het eerste getal
2
0
Stop buiten de reeks
6
9
Eén bruikbaar getal
1
2
AAN DE SLAG 0/4
1

Selecteer het juiste spoor

Stop boven stop en sla veelvouden van drie over. Toon de overgebleven getallen op regel 1.

2

Tel alleen verwerkte getallen

Toon op regel 2 hoeveel getallen werkelijk in het spoor terechtkomen.

3

Tel de waarden op

Toon op regel 3 de som van de verwerkte getallen.

4

Onthoud de laatste waarde

Toon op regel 4 het laatst verwerkte getal, of nul bij een leeg spoor.

Dit neem je mee

  • Break verlaat de lus; continue slaat de rest van één ronde over.
  • Controleer vóór de verwerking of een waarde moet worden overgeslagen.
  • Werk tellers en totalen alleen bij voor waarden die echt verwerkt zijn.

Hierna bouw je met zulke tussenresultaten een volledig overzicht van een reeks.

main.py
UitvoerPython
›
›_

Hier komt je resultaat.

Voer je code uit en ontdek
wat je hebt gemaakt.

0/4 stappen
EVEN MEEKIJKEN

Bekijk hoe het kan.

Je mag de oplossing bekijken. Deze poging telt dan niet mee als afgeronde les. Met Reset kun je daarna opnieuw zelf oefenen.