Ga naar hoofdinhoud

5a Booleans en vergelijken

Je kunt nu variabelen maken, rekenen en tekst opmaken. Er bestaat nog een soort waarde: de boolean, True of False. Elke vergelijking levert er een op, en in de volgende les beslist je programma ermee met if en else.

Booleans​

Een boolean heeft maar twee mogelijkheden: True (waar) of False (niet waar).

is_student = True
heeft_kaartje = False

print(is_student) # True
print(heeft_kaartje) # False

Booleans gebruik je om "ja of nee"-feiten op te slaan.

Vergelijkingsoperatoren​

Met vergelijkingsoperatoren krijg je altijd een boolean terug:

OperatorBetekenisVoorbeeldResultaat
==gelijk aan5 == 5True
!=niet gelijk aan5 != 3True
<kleiner dan3 < 10True
>groter dan3 > 10False
<=kleiner of gelijk5 <= 5True
>=groter of gelijk3 >= 10False
leeftijd = 16

print(leeftijd >= 18) # False
print(leeftijd < 18) # True

Let op: = slaat een waarde op, == vergelijkt twee waardes. Dat verschil is een van de meest gemaakte fouten in Python.

Een vergelijking opslaan​

Een vergelijking levert een boolean op, en die kun je in een variabele bewaren:

leeftijd = 20

mag_stemmen = leeftijd >= 18
print(mag_stemmen) # True
leeftijd = 18
print(leeftijd > 18)
Voorspel
Wat zet dit programma op het scherm?
Kies wat jij denkt. Bij het goede antwoord zie je de uitleg.

Er gaat iets mis​

true met een kleine letter

is_student = true

Uitvoer:

NameError: name 'true' is not defined. Did you mean: 'True'?

True en False beginnen met een hoofdletter. Zonder hoofdletter denkt Python dat je een variabele bedoelt die niet bestaat.

De tekens omgedraaid

leeftijd = 16
print(leeftijd =< 18)

Uitvoer:

SyntaxError: invalid syntax

Het =-teken komt altijd als laatste: <= en >=. Je zegt het ook zo: kleiner of gelijk.

Tekst vergelijken met een getal

print("10" == 10) # False

Python geeft geen foutmelding, maar "10" is tekst en 10 is een getal, en die zijn nooit gelijk. Dit gebeurt met wat je met input() binnenkrijgt. Maak er eerst een getal van met int(), zoals in Tekst naar getal.


Opdracht 5a.1: 18 of ouder​

Maak een variabele leeftijd met de waarde 16, en print of die persoon 18 of ouder is.

# Schrijf hier je code
Klik hier voor een tip.

Print de vergelijking leeftijd >= 18 direct.

Klik hier voor de oplossing.
leeftijd = 16

print(leeftijd >= 18)

Uitvoer: False.

leeftijd = 16

print(leeftijd >= 18)

Opdracht 5a.2: Twee booleans​

Print twee booleans: is_volwassen (leeftijd 18 of hoger) en is_senior (leeftijd boven 65).

Verwachte uitvoer (bij leeftijd = 70):

Volwassen: True
Senior: True
# Schrijf hier je code
Klik hier voor een tip.

is_volwassen = leeftijd >= 18 en is_senior = leeftijd > 65. Print met een komma: print("Volwassen:", is_volwassen).

Klik hier voor de oplossing.
leeftijd = 70

is_volwassen = leeftijd >= 18
is_senior = leeftijd > 65

print("Volwassen:", is_volwassen)
print("Senior:", is_senior)
leeftijd = 70

is_volwassen = leeftijd >= 18
is_senior = leeftijd > 65

print("Volwassen:", is_volwassen)
print("Senior:", is_senior)

Opdracht 5a.3: Leeftijds-check​

Schrijf een programma dat met één variabele leeftijd drie booleans berekent en print: is_kind (jonger dan 12), is_tiener (12 of ouder) en is_volwassen (18 of ouder).

Verwachte uitvoer (bij leeftijd = 15):

Kind: False
Tiener: True
Volwassen: False
# Schrijf hier je code
Klik hier voor een tip.
  • is_kind = leeftijd < 12
  • is_tiener = leeftijd >= 12
  • is_volwassen = leeftijd >= 18

Een strengere tiener-check (12 t/m 19) leer je in de volgende lessen met and.

Klik hier voor de oplossing.
leeftijd = 15

is_kind = leeftijd < 12
is_tiener = leeftijd >= 12
is_volwassen = leeftijd >= 18

print("Kind:", is_kind)
print("Tiener:", is_tiener)
print("Volwassen:", is_volwassen)

In de volgende les ga je deze booleans gebruiken om je programma écht een keuze te laten maken met if en else.

leeftijd = 15

is_kind = leeftijd < 12
is_tiener = leeftijd >= 12
is_volwassen = leeftijd >= 18

print("Kind:", is_kind)
print("Tiener:", is_tiener)
print("Volwassen:", is_volwassen)