# Programmeren in Python/Beslissingscontrole

Python gebruikt zoals zovele programmeertalen Booleaanse logica voor beslissingscontrole. Dit wil zeggen dat de Python interpreter één of meerdere waarden om zo te beslissen of een stuk logica al dan niet uitgevoerd dient te worden.
De beslissingscontrole is gesplitst in twee hoofdgroepen: conditie- en herhalingsgerelateerd. Conditionele logica maakt gebruik van het statement if en een Booleaanse expressie om te beslissen of een code blok al dan niet uitgevoerd dient te worden. Herhaling baseert zich op conditionele constructies door een bepaalde blok uit te voeren wanneer een bepaalde Booleaanse expressie zich herleidt tot true.

## Booleaanse uitdrukkingen

Hier is een voorbeeld van enige Booleaanse uitdrukkingen en hun resultaat:
Wat gebeurt hier ? Het programma bestaat uit een aantal print statements. Elk print statement print een getal en de waarde van een Booleaanse expressie. Het nummer is louter ter referentie in de tekst. Merk op dat elke expressie uiteindelijk resulteert in zijnde True of False. In de eerste twee regels worden twee waarden vergeleken. In het geval dat de twee waarden gelijk zijn is het resultaat True en in het andere geval False.
Vanaf regel drie wordt het iets complexer. De operator and zal enkel True teruggeven indien zowel het statement voor als na de operator beide True zijn. In het andere geval is het resultaat False. Dit kan als volgt samengevat worden:
| expressie | resultaat |
| true and true | true |
| true and false | false |
| false and true | false |
| false and false | false |
Merk op dat indien de eerste expressie False is, het niet meer nodig is om het tweede deel te testen (het resultaat zal in elk geval False zijn) en Python zal dit dan ook niet doen (dit heet ook wel lazy evaluation).
Regel vijf maakt gebruik van de not operator. Deze geeft het tegenovergestelde van de expressie weer. De expressie had ook geschreven kunnen worden als print 5, a != 7 and b == 7. Dit geeft de volgende waarheidstabel:
| expressie | resultaat |
| not true | false |
| not false | true |
Regels 6 en 7 maken gebruik van de or operator. Deze geeft True wanneer minstens één van de expressies True is.
| expressie | resultaat |
| true or true | true |
| true or false | true |
| false or true | true |
| false or false | false |
Bemerk dat hier indien de eerste expressie True is, de gehele expressie al True is, onafhankelijk van de andere expressies. Ook hier dient dus het tweede deel niet meer geëvalueerd te worden en Python zal dit dan ook niet doen.
De volgende twee regels 8 en 9 tonen dat haakjes gebruikt kunnen worden om expressies te groeperen om ervoor te zorgen dat een bepaald deel van de expressie eerst geëvalueerd dient te worden. Merk op dat het gebruik van de haakjes het resultaat van de uitdrukking veranderd heeft. Dit is doordat de not toepassing gekregen heeft op de gehele expressie in plaats van enkel op het gedeelte a = 7.
Nu volgt een voorbeeld waarin gebruik gemaakt wordt van een Booleaanse uitdrukking:
Let wel:het statement elif is een samentrekking van else en if.
Voorbeeld output:
Hier wordt eerst een naam en een wachtwoord ingelezen. Vervolgens wordt de input vergeleken met voorgedefinieerde waarden. De uitvoer hangt dus af van het al dan niet correct invoeren en een combinatie van naam en wachtwoord.