Voor we aan de slag gaan met expressies, moet ik ook de data types bespreken. De drie belangrijkste data types die je op dit moment moet kennen zijn strings, integers, en floats.
Een string is een tekst, die bestaat uit nul of meerdere tekens tussen
aanhalingstekens. Je mag zowel dubbele als enkele aanhalingstekens
gebruiken, bijvoorbeeld: "appel"
is
equivalent met 'appel'
. Er is echter wel een uitzondering: als in
je tekst een enkel aanhalingsteken voorkomt,
moet je de tekst tussen dubbele aanhalingstekens plaatsen om problemen te voorkomen;
dus "mango's"
is een correcte string, terwijl
'mango's'
niet correct is. Hetzelfde geldt natuurlijk voor een dubbel
aanhalingsteken in een string, die dan omsloten moet worden door enkele
aanhalingstekens.
Als er in je string zowel dubbele als enkele
aanhalingstekens voorkomen, kan je dat oplossen door in de string een
“backslash” (\
) op te nemen voor ieder dubbel of enkel aanhalingsteken
dat in de string staat. Dit vertelt Python dat dat aanhalingsteken
behandeld moet worden als een teken in de string, en niet als een
afsluiting van de string. Dus 'mango\'s'
is een correcte string, wat
je kunt zien als je hem probeert te printen:
print( 'mango\'s' )
Maar wat moet je doen als je een echte backslash wilt opnemen in de string en die backslash moet dan ook nog eens staan voor een dubbel of enkel aanhalingsteken? Dat kun je oplossen door voor de backslash een extra backslash op te nemen. In het voorbeeld hieronder geeft de eerste backslash aan dat de volgende een teken van de string is, de derde backslash maakt op zijn beurt een teken van het enkel aanhalingsteken:
print( 'mango\\\'s' )
Dit komt echter niet zo dikwijls voor. Momenteel is het dan ook voldoende om te weten dat een string een tekst is die omsloten is door dubbele of enkele aanhalingstekens.
Let erop dat je in Python programma’s alleen “rechte” aanhalingstekens gebruikt en niet “ronde.” Deze laatste worden niet herkend door Python. Tekstverwerkers gebruiken soms ronde aanhalingstekens. Als je om wat voor reden dan ook Python code kopieert van of naar een tekstverwerker, zou het kunnen gebeuren dat je aanhalingstekens gewijzigd worden naar ronde. Kijk daarvoor uit.
Integers zijn gehele getallen, die positief of negatief (of nul) kunnen zijn. Er is een zekere grens aan hoe groot integers kunnen worden, afhankelijk van je computer en besturingssysteem. Voor de meeste toepassingen maakt dit niet uit, en kom je nooit aan die grenzen toe.
Als je integers in Python gebruikt, mag je ze niet schrijven met
scheidingstekens tussen de veelvouden van 1000 om ze leesbaarder te maken. Je
moet het getal 1 miljard dus schrijven als 1000000000
en niet als
1,000,000,000
(de Engelse conventie) of 1.000.000.000
.
Floats, wat de afkorting is voor “floating-point getallen” (“gebroken
getallen”), zijn decimale getallen. Bijvoorbeeld, 3.14159265
is
een float. Merk op dat je in Python een punt in plaats van een komma moet
gebruiken als decimaal-scheider.
Als je een integer hebt die je wilt gebruiken als float, kun je dat doen
door er .0
achter te zetten. Bijvoorbeeld, 13
is een integer, maar
13.0
is een float. Ze geven nog steeds dezelfde waarde weer, en als je
ze in code met elkaar vergelijkt (dat bespreek ik in hoofdstuk
71),
dan zal Python stellen dat ze hetzelfde zijn.
Ook aan de grootte en precisie van floats zijn er bepaalde begrenzingen, maar ook hier is het onwaarschijnlijk dat je ooit de maximale groottes bereikt, aangezien Python wetenschappelijke notatie voor grote getallen gebruikt.
Door de manier waarop Python floats opslaat, kunnen bepaalde getallen
niet precies vastgelegd worden. Bijvoorbeeld, het statement
print( (431 / 100) * 100 )
geeft als antwoord 430.99999999999994 en
niet 431 zoals je zou verwachten. Als je weet dat de uitkomst van een
berekening waarin floats zitten een integer moet zijn, dan doe je er
goed aan om de uitkomst af te ronden naar het dichtstbijzijnde gehele
getal. Dat kun je doen met behulp van de round()
functie die ik
bespreek in hoofdstuk
62.