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 3: Selecties (if / elif / else)

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

  • Voorwaarden schrijven met vergelijkings- en logische operatoren.
  • Beslissingen nemen met if/elif/else en met de voorwaardelijke expressie (ternary).
  • Begrijpen van truthiness (lege waarden zijn onwaar) en valkuilen vermijden.

Richtlijnen

  • Gebruik duidelijke variabelenamen (Engels).
  • Houd je aan de grenswaarden zoals gevraagd; benoem je keuzes in comments.
  • Print duidelijke output zodat een gebruiker begrijpt wat er gebeurt.

Oefening 1 — Basis if Schrijf een script dat een geheel getal n leest en print:

  • "even" als n deelbaar is door 2,
  • anders "odd". Gebruik een enkele if/else.

Oefening 2 — Leeftijdscategorieën Vraag een leeftijd (integer) en print precies één van: "minor" (< 18), "adult" (18–64), "senior" (65+). Gebruik elif in de juiste volgorde.

Oefening 3 — Rapportcijfer naar label Lees een decimaal cijfer 0–10 en print: "insufficient" (< 5.5), "sufficient" (5.5–6.9), "good" (7.0–8.4), "excellent" (8.5–10). Zorg dat elke invoer in 0..10 in precies één categorie valt.

Oefening 4 — Login-indicatie (zonder echte beveiliging) Vraag username en password en print "Welcome!" als ze exact "admin" en "secret" zijn, anders "Access denied". Gebruik een enkele if/else met and.

Oefening 5 — Korting met lidmaatschap Lees een bedrag amount (float) en vraag of iemand lid is (antwoord yes of no). Regels:

  • 10% korting als lid én amount >= 100.
  • Anders 5% korting als amount >= 150.
  • Anders 0%. Print het kortingspercentage en het bedrag na korting (2 decimalen).

Oefening 6 — Truthiness en invoer Vraag een zoekterm (string). Print:

  • "Empty query" als de invoer leeg is (na strip()),
  • anders "Searching for ''...". Gebruik de ternary expression.

Oefening 7 — Kettingvergelijking Lees een integer x en print True of False of x in het bereik 10..20 (inclusief) ligt, met een kettingvergelijking. Print geen extra tekst.

Oefening 8 — Guard clause (functie) Schrijf een functie shipping_cost(country: str, weight_kg: float) -> float met regels uit het boek:

  • Als weight_kg <= 0: raise ValueError.
  • NL: 4.50 (<= 2 kg) anders 6.75; BE: 5.20 (<= 2 kg) anders 7.40; overige: 9.90. Schrijf een klein __main__-blok dat 2–3 voorbeelden print.

Oefening 9 — Wachtwoordsterkte-indicatie (eenvoudig) Lees een wachtwoord (string) en geef één label:

  • "weak" als lengte < 6,
  • "medium" als lengte 6–9,
  • "strong" als lengte >= 10. Gebruik alleen lengte als criterium in deze oefening. Toon ook de lengte in de output.

Oefening 10 — Netto prijs met btw‑optie Lees amount (float) en type (string: incl of excl). Als type == "incl", haal 21% btw eraf en toon netto; als excl, tel 21% btw erbij. Gebruik duidelijke prints en formatteer met 2 decimalen. Vang geen invoerfouten in deze oefening; focus op selecties.

Uitdaging (optioneel) — Kalenderdag naar type dag Vraag een dagnaam (bijv. "monday"/"tuesday" etc., case-insensitive). Print "weekend" voor zaterdag/zondag, anders "weekday". Gebruik normalisatie (lower()) en een compacte voorwaarde (bijv. in op een set of tuple).