Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Werkboek — Hoofdstuk 4: Lussen en iteraties

Let op: alle programmacode schrijf je in het Engels (zoals in het boek). De uitleg en opdrachten zijn in het Nederlands.

Doel van dit hoofdstuk

  • Herhalen met while en tellen/doorlopen met for.
  • range(start, stop, step) effectief gebruiken.
  • Begrijpen en toepassen van break en continue.
  • Handige helpers gebruiken: enumerate, iteratie over dicts, geneste lussen.
  • Het patroon for-else inzetten bij zoekproblemen.

Richtlijnen

  • Gebruik duidelijke variabelen- en functienamen (Engels).
  • Print nette, betekenisvolle output zodat je resultaat te controleren is.
  • Hou je lussen klein en leesbaar; vermijd onnodige continue/break.

Oefening 1 — Tellen met range Print de getallen 1 t/m 10 op één regel, gescheiden door spaties. Gebruik een for-lus met range.

Oefening 2 — Som 1..n (accumulatie) Vraag een positief geheel getal n (ga uit van geldige invoer in deze oefening) en bereken de som van 1..n met een for-lus. Print de som.

Oefening 3 — While-teller omlaag Print een aftelling van 5 naar 1 met een while-lus en eindig met Liftoff!.

Oefening 4 — Alleen even getallen (continue) Print de even getallen van 1..20 met een while-lus. Gebruik continue om oneven getallen over te slaan.

Oefening 5 — Eerste veelvoud vinden (for-else) Zoek in 1..50 naar het eerste getal dat deelbaar is door 7 én 5. Print Found: <getal> als het bestaat; anders No match. Gebruik een for met een else-deel (dus break bij succes, anders valt het else-blok in).

Oefening 6 — Genummerde lijst (enumerate) Gegeven een lijst names = ["Ava", "Bo", "Cid", "Dia"]. Print elke naam genummerd vanaf 1 in de vorm 1. Ava, 2. Bo, ... Gebruik enumerate(..., start=1).

Oefening 7 — Itereren over dict Gegeven user = {"name": "Liam", "age": 31, "city": "Rotterdam"}. Print elke sleutel en waarde op een eigen regel in de vorm name: Liam.

Oefening 8 — Tafel van vermenigvuldiging (genest) Print een 10×10 vermenigvuldigingstafel (1..10 × 1..10). Gebruik twee geneste for-lussen en maak kolommen netjes met een breedte van 4 tekens. Tip: print(f"{value:>4}", end="") en na een rij print() voor de newline.

Oefening 9 — Invoer tot leeg (sentinel) Lees regels in van de gebruiker tot een lege regel wordt ingevoerd. Tel hoeveel niet-lege regels gegeven zijn en print Count: <aantal>. Gebruik een while True-lus met break.

Oefening 10 — Filter en transformeer Gegeven nums = [3, 8, 1, 7, 2, 10, 5].

  • Bouw met een for-lus een nieuwe lijst evens met alleen de even getallen.
  • Bouw met een tweede for-lus een lijst squares met kwadraten van alle getallen uit nums. Print beide lijsten. (Gebruik hier nog géén list comprehensions.)

Uitdaging (optioneel) — FizzBuzz 1..100 Print de getallen 1..100, maar vervang veelvouden van 3 door Fizz, van 5 door Buzz, en van 3 én 5 door FizzBuzz. Alles op aparte regels. Gebruik een for-lus en duidelijke if/elif-logica.