Variabelen in Python

Variabelen, je kunt er in het programmeren eigenlijk niet omheen. In dit artikel leggen we je uit wat variabelen in Python zijn en waar je ze voor kunt gebruiken. Als je nieuw bent in het programmeren kan het concept ‘variabele’ wat abstract overkomen. Maar vrees niet, we gebruiken allerlei voorbeelden zodat je het volledig zult gaan begrijpen. Je leert het meest tijdens deze uitleg wanneer de voorbeelden kopieert en plakt naar een interpreter. Dit kan in een omgeving op je PC als je Python hebt geïnstalleerd of in je browser via Repl.it.

bucket with cat

Wat zijn variabelen in Python?

Variabelen worden gebruikt om data op te slaan in het geheugen van een computer. Python is een object-georiënteerde programmeertaal. Denk bij een variable aan het koppelen van een naam aan een object. Om een variabele aan te maken koppel je een waarde aan een naam. In het Engels spreekt men bij het maken van een variabele over ‘declaring a variable’.

Het creëren van een variabele kun je het beste vergelijken met het neerzetten van een emmer. Deze emmer geef je een naam. Vervolgens kun je allerlei dingen in deze emmer stoppen. Wanneer je de computer vraagt iets met de emmer te doen dan verricht het een handeling met wat er op dat moment in de emmer zit. Het toekennen van de waarde aan deze variabele doet men met het gebruik van het is-teken (=). De syntax voor variabelen is als volgt: naam = waarde.

variabele = "waarde"
naam = "Jan"
inhoud_emmer = ["Kat", "Lucht", "Kattenspeeltje"]

Wanneer je een script met de bovenstaande variabelen activeert, bijvoorbeeld in je interpreter, dan zorgt dat ervoor dat de computer een tweemaal een stukje data opslaat in het geheugen. Eenmaal een stukje geheugen genaamd ‘variabele’ waar in het woord ‘waarde’ als waarde is opgeslagen en de tweede is een stuk geheugen waarin de naam “Jan” als waarde is opgeslagen. Bij de variabele ‘inhoud_emmer’ zijn de dingen die zich in de emmer bevinden opgeslagen als lijst. Bij het uitprinten van deze variabele krijg je deze allemaal te zien. Wanneer je de print() functie gebruikt om een van deze variabelen uit te printen zul je dan ook enkel de waarde van deze variabele als output te zien krijgen.

variabele = "waarde"
naam = "Jan"
inhoud_emmer = inhoud_emmer = ["Kat", "Lucht", "Kattenspeeltje"]

print(variabele)
print(naam)
print(inhoud_emmer)

Je kunt de waarde die tot een bepaalde variabele behoort constant vervangen. Dit komt omdat het een overschrijvend principe heeft. Als er iets nieuws aan de variabele wordt toegekend, dan wordt het oude automatische vervangen. Wanneer je het onderstaande stuk code uitprint zul je zien dat Deborah de winnaar is.

winnaar = "Martine"
winnaar = "Johan"
winnaar = "Deborah"
print(winnaar)
Variable en data

Het type van een variabele achterhalen

Je kunt allerlei verschillende datatypen toekennen aan variabelen. Denk hierbij aan tekst-datatypen zoals strings, getallen zoals integers and floats, maar ook collecties van verschillende datasoorten zoals lists, tuples, dictionaries en sets. Je kunt het type data dat is opgeslagen achterhalen met de type() functie. Deze plaats je in de printfunctie om

naam = "Boris"
leeftijd = 25
test_score = 9.4
favoriete_vakken = ["Wiskunde", "Engels", "Biologie"]

print(type(naam))
print(type(leeftijd))
print(type(test_score))
print(type(favoriete_vakken))

Naast de type() functie is er nog een manier om het soort data te achterhalen. Dit doe je met de isinstance() functie. Met de isinstance() functie kun je achterhalen of de waarde in een bepaalde specifieke variabele tot een bepaalde datasoort behoort. De syntax voor deze functie is: isinstance(objectclassinfo). Op de plaats van het woord object vult men de naam van de variabele in. Op de plaats van het woord classinfo plaats je de naam van het datatype waarvan je wilt kijken of deze gelijk is aan wat er op dat moment in de variabele is opgeslagen. Als deze types overeen komen dan wordt de boolean waarde True als output gegeven, indien dit niet het geval is dan volgt er een False. In het onderstaande voorbeeld geeft alleen het printen van de leeftijd een False omdat de leeftijd een integer (geheel getal) is, en geen float (kommagetal).

naam = "Anneke"
leeftijd = 30
netto_salaris = 3025.50

print(isinstance(naam, str))
print(isinstance(leeftijd, float))
print(isinstance(netto_salaris, float))

In tegenstelling tot bij veel andere hoeft in Python de waarde van een variabele niet vooraf al direct gedefinieerd te worden. Je hoeft ze dus pas aan te maken wanneer je ze gaat gebruiken. Ook kun je een lege variabele aanmaken. Dit ziet er als volgt uit:

variabele = None

Variabelen in de praktijk: een voorbeeld

Het aantal mogelijke toepassingen voor variabelen is eindeloos, aangezien je in een script oneindig veel waarden kunt combineren. In het onderstaande voorbeeld hebben we de waarden False aan de variabele regen gekoppeld. Ook heeft de variabele temperatuur de integer waarde ’18’ gekregen. De bedoeling van dit script is dat het je vertelt of je een jas aan moet als je naar buiten gaat of niet. In de if-statement hebben we vastgesteld dat het niet mag regenen en dat de temperatuur minimaal 15 graden moet zijn. Als de variabele ‘regen’ inderdaad False is en de temperatuur hoger is dan 15 dan wordt de eerste string geprint en krijg je te lezen dat je naar buiten kunt zonder jas.

regen = False
temperatuur = 18

if regen is False and temperatuur > 15: 
  print("Het is goed weer, je kunt zonder jas naar buiten,")
else:
  print("Het is geen goed weer, trek een jas aan.")

Het nut van het gebruik van variabelen in dit geval is dat je deze eenmalig definieert en dat je vervolgens geen aanpassingen meer in de rest van het script hoeft aan te passen. Er is echter nog een kleine optimalisatie slag te maken in dit script. We kunnen de minimale temperatuur van 15 namelijk ook vervangen door een variabele. Het zal je ook opvallen dat het nu stukken gemakkelijker is om de code aan te passen en de uitkomst van het script te bewerken.

regen = False
temperatuur = 18
minimale_temperatuur = 15

if regen is False and temperatuur > minimale_temperatuur: 
  print("Het is goed weer, je kunt zonder jas naar buiten,")
else:
  print("Het is geen goed weer, trek een jas aan.")

Overigens komt het ook vaak voor dat je databronnen aan een script wilt koppelen. In dit voorbeeld zou je bijvoorbeeld weerdata van Buienradar of WeerOnline aan je script willen koppelen. Het liefst zorg je er dan voor dat er een enkele waarde vanuit die databronnen aan je variabele gekoppeld wordt. Hierbij een voorbeeld van hoe dit er uit zou kunnen zien:

import weather.api

regen = weather.api.rain(voorbeeld.Nederland.Hilversum)
temperatuur = weather.api.temperature(voorbeeld.Nederland.Hilversum)
minimale_temperatuur = 15

if regen is False and temperatuur > minimale_temperatuur: 
  print("Het is goed weer, je kunt zonder jas naar buiten,")
else:
  print("Het is geen goed weer, trek een jas aan.")

De API die in verbinding staat met het platform dat aan jou de weersverwachtingen aangeeft voor een locatie kun je direct koppelen aan een variabele. Zo ontvangt de variabele regen een waarde van True of False voor de locatie Hilversum, de variabele temperatuur ontvangt de temperatuur in een getal. Vervolgens kunnen deze twee waarden rechtstreeks worden verwerkt in het script om een uitslag te produceren. Let op dat dit geen werkend script is maar slechts een conceptueel voorbeeld ter illustratie.

Restricties

Er gelden een aantal regels rondom variabelen. Wij zetten ze voor je op een rijtje:

  • De naam van een variabele mag niet met een cijfer beginnen. De naam mag wel een cijfer bevatten, en zo dus ook eindigen met een cijfer.
  • Er mogen geen normale streepjes/min-tekens (-) gebruikt worden in de naam. In plaats hiervan kun je een laag streepje (_) gebruiken. Anders dan de underscore mogen er geen andere speciale tekens worden gebruikt. Dit is omdat deze tekens andere betekenissen hebben in Python.
  • Je mag wel gebruik maken van hoofdletters. Lets op dat Python onderscheid maakt tussen hoofdletters en kleine letters. Zo zijn de variabelen NAAM en naam twee verschillende variabelen.