← Python/De eerste bouwstenen
Les 6 van 8
MODULE 01 · 06◷ 14 min

Stel vragen aan je waarden

Na deze les kun je
  • Een vergelijking als True of False afdrukken
  • Twee voorwaarden met and en or combineren
  • Een booleaanse waarde met not omkeren

Een reserveringssysteem moet weten of er genoeg plaatsen zijn. Dat is geen vraag om een nieuwe tekst of een bedrag, maar om een ja-of-nee-antwoord. Je gaat zulke antwoorden berekenen en combineren, nog zonder te bepalen welke code daarna wordt uitgevoerd.

Een vergelijking stelt een vraag

Een vergelijking onderzoekt de verhouding tussen twee waarden. Met seats >= visitors vraag je of er minstens zoveel plaatsen zijn als bezoekers. De tekens >= betekenen “groter dan of gelijk aan”, dus precies genoeg plaatsen telt ook mee.

De uitkomst is een boolean: de waarde True voor waar of False voor onwaar. In Python schrijf je beide met een hoofdletter en zonder aanhalingstekens. De tekst "False" is een string en dus iets anders dan het antwoord False.

Je kunt een boolean meteen met print() bekijken of onder een naam bewaren. Daarmee scheid je de vraag van het moment waarop je het antwoord toont. In de volgende module gebruik je zulke antwoorden om te kiezen welke instructies worden uitgevoerd.

Regels combineren

Met logische operatoren combineer je antwoorden. Bij booleans betekent and dat beide voorwaarden waar moeten zijn; or vraagt dat minstens één voorwaarde waar is. not draait één antwoord om: waar wordt onwaar en andersom.

Eerste antwoordTweede antwoordMet andMet or
FalseFalseFalseFalse
FalseTrueFalseTrue
TrueFalseFalseTrue
TrueTrueTrueTrue

De laatste rij is belangrijk: or accepteert óók dat beide antwoorden waar zijn. Het betekent hier dus niet “precies één van de twee”. We gebruiken deze operatoren in deze les alleen met booleaanse waarden.

Een afspraak voorbereiden

In dit voorbeeld is er precies genoeg plek en heeft een bezoeker wel een reservering maar geen bevestiging. Voorspel de uitvoer per regel aan de hand van de vragen.

Is alles klaar voor de afspraak?
seats = 5
visitors = 5
reserved = True
confirmed = False
print(seats >= visitors)
print(reserved and confirmed)
print(reserved or confirmed)
print(not confirmed)
Verwachte uitvoer
True
False
True
True

De vergelijking slaagt omdat gelijkheid bij >= is toegestaan. De strenge regel met and slaagt niet, omdat de bevestiging ontbreekt. De ruimere regel met or slaagt wel; not confirmed zegt dat de bezoeker nog niet bevestigd heeft.

De verkeerde regel kiezen

Je wilt iemand alleen als gereed beschouwen wanneer zowel de reservering als de bevestiging aanwezig is. Met or krijg je bij dezelfde gegevens een ander antwoord.

Eén voorwaarde is niet hetzelfde als beide
reserved = True
confirmed = False
print(reserved or confirmed)
print(reserved and confirmed)
Verwachte uitvoer
True
False

Dit programma heeft geen typefout: beide regels zijn geldige berekeningen. De fout zit in de gekozen regel als je beide voorwaarden wilde eisen. Spreek je bedoeling daarom eerst uit als “én” of “minstens één”, en kies daarna de operator.

Nu jij

De eerste twee regels in de editor lezen testinvoer. De functie input() leest één regel als tekst; int() maakt daar het getal van, zoals in de vorige les. Deze regels staan al klaar: je hoeft ze niet aan te passen.

Codelab voert je programma drie keer uit: met ruim voldoende voorraad, precies genoeg en een tekort. Onder Testinvoer zie je de getallen per variant; de eerste regel is de voorraad en de tweede de bestelling. Een groene stap betekent dat je vergelijking bij alle drie klopt.

Controleer de voorraad en twee voordeelregels met de ingelezen waarden. Verander de feiten niet om een gewenst antwoord te krijgen: je oefent het formuleren van de juiste vraag.

Testinvoer · 3 varianten

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

Ruim voldoende: 8 voor 6
8
6
Precies genoeg: 6 voor 6
6
6
Een tekort: 5 voor 6
5
6
AAN DE SLAG 0/4
1

Controleer de voorraad

Toon op regel 1 met >= of de voorraad voldoende is. Ook precies genoeg telt mee; bij een tekort verwacht je False.

2

Vereis beide kenmerken

Controleer met and of member én coupon waar zijn. Regel 2 moet False tonen.

3

Accepteer één kenmerk

Controleer met or of minstens één van member en coupon waar is. Regel 3 moet True tonen.

4

Keer het lidmaatschap om

Toon op regel 4 met not dat deze klant geen lid is: True.

Dit neem je mee

  • Een vergelijking levert True of False op.
  • Bij booleans eist and beide voorwaarden; or minstens één.
  • not keert een waarheidswaarde om.

De volgende les gaat over tekst netjes maken voordat je die verder gebruikt.

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.