Controleer de voorraad
Toon op regel 1 met >= of de voorraad voldoende is. Ook precies genoeg telt mee; bij een tekort verwacht je False.
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 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.
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 antwoord | Tweede antwoord | Met and | Met or |
|---|---|---|---|
False | False | False | False |
False | True | False | True |
True | False | False | True |
True | True | True | True |
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.
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.
seats = 5
visitors = 5
reserved = True
confirmed = False
print(seats >= visitors)
print(reserved and confirmed)
print(reserved or confirmed)
print(not confirmed)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.
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.
reserved = True
confirmed = False
print(reserved or confirmed)
print(reserved and confirmed)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.
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.
Je programma krijgt deze invoer automatisch. Elke variant begint opnieuw. Alle varianten moeten kloppen.
8 6
6 6
5 6
Toon op regel 1 met >= of de voorraad voldoende is. Ook precies genoeg telt mee; bij een tekort verwacht je False.
Controleer met and of member én coupon waar zijn. Regel 2 moet False tonen.
Controleer met or of minstens één van member en coupon waar is. Regel 3 moet True tonen.
Toon op regel 4 met not dat deze klant geen lid is: True.
True of False op.and beide voorwaarden; or minstens één.not keert een waarheidswaarde om.De volgende les gaat over tekst netjes maken voordat je die verder gebruikt.
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.