Ga naar hoofdinhoud

3.2 Data types

Voordat ik toekom aan expressies, is er nog een onderwerp dat aan bod moet komen, en dat is data types. Er zijn drie verschillende data types die je op dit moment moet kennen, en dat zijn strings, integers, en floats.

Strings

Een string is een tekst, die bestaat uit nul of meer tekens, omsloten door aanhalingstekens. Je mag dubbele of enkele aanhalingstekens gebruiken. Wat je kiest maakt niet uit, bijvoorbeeld: "appel" is equivalent met 'appel'. Echter, als je tekst een enkel aanhalingsteken bevat, moet je hem om problemen te voorkomen omsluiten met dubbele aanhalingstekens; 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.

Maar wat moet je doen als een string zowel dubbele als enkele aanhalingstekens bevat? Je kunt 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 dan 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, wat er een teken in de string van maakt in plaats van een aanduiding dat wat erachter komt letterlijk genomen moet worden. Bijvoorbeeld, controleer wat de volgende code doet als je hem uitvoert (je kunt hem intypen in de Python shell):

print( 'mango\\\'s' )

Als je dit verwarrend vindt kun je het voorlopig vergeten; ik ga het hierover in een later hoofdstuk nog uitgebreid hebben. Voor dit moment is het voldoende om te weten dat een string een tekst is die omsloten is door dubbele of enkele aanhalingstekens. Een string kan iedere lengte hebben, inclusief nul tekens lang.

Let erop dat je alleen “rechte” aanhalingstekens gebruikt in Python programma’s, en niet “ronde.” Tekstverwerkers hebben de neiging om rechte aanhalingstekens automatisch te vervangen door ronde, maar Python herkent zulke ronde aanhalingstekens niet. Tekst editors (zoals IDLE) doen dat niet, maar als je om wat voor reden dan ook Python code kopieert naar een tekstverwerker, dan zou het best kunt gebeuren dat je aanhalingstekens gewijzigd worden. Kijk daarvoor uit.

Integers

Integers zijn gehele getallen, die positief of negatief (of nul) kunnen zijn. In veel programmeertalen is er een zekere grens aan hoe groot integers kunnen worden, die afhankelijk is van je computer en besturingssysteem. Dat geldt niet voor Python. Echter, als integers erg groot worden in Python, kan de verwerking ervan in je programma’s onredelijk traag worden. Voor de meeste toepassingen maakt dit niet uit, want de integers kunnen heel erg groot worden voordat dit probleem optreedt. Python is niet als rekenmachines met een 10-cijfer display.

Er zijn meerdere manieren mogelijk om een specifieke integer-waarde te schrijven. 1 is hetzelfde als +1 (er zijn nog meer manieren om 1 te schrijven, maar die volgen in een later hoofdstuk). Dus zowel print(1) als print(+1) geven hetzelfde resultaat. Voor strings is dat natuurlijk anders: de string"1" is niet hetzelfde als de string"+1".

Als je integers in Python gebruikt, mag je ze niet schrijven met scheiders 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.

Bestudeer de volgende code en bedenk wat er gebeurt als je hem uitvoert. Kopieer hem daarna naar de Python shell en voer hem uit.

print( 1,000,000,000 )
Opgave

Als je voorspelling van wat de code doet niet correct is, probeer dan te bedenken waarom de code deze uitkomst geeft.