1. Variabelen#

Voordat je je in loops gaat verdiepen, is het nodig dat je iets weet van variabelen. Een variabele is een plaats in het geheugen van de computer waar je een waarde kunt opslaan. Je kunt een variabele vergelijken met een lade in een ladenkast. De lade heeft een label dat aangeeft wat er in zit en in de lade zit inhoud. Een variabele heeft een naam die (meestal) aangeeft wat er in zit en in de variabele zit een waarde.

../_images/variables.png

Maak in Mu editor een nieuw bestand door op de knop New te klikken. Typ de onderstaande code in het bestand (dus niet kopiëren en plakken) en let daarbij op hoofd- en kleine letters en ook op spaties. Sla het bestand op als turtle_variables.py.

turtle_variables.py#
1import turtle
2
3tony = turtle.Turtle()
4
5lengte = 100
6tony.fd(lengte)

In deze code wordt op regel 5 een variabele lengte gemaakt, waarin de waarde 100 wordt opgeslagen. In regel 6 gebruiken we de variabele bij het aanroepen van tony.fd(lengte).

Meer weten over het maken van een variabele?

Een variabele maak je door een (zelfbedachte) variabelenaam te typen, gevolgd door een is-gelijk-aan-teken en de waarde die je in de variabele wilt opslaan. Dit bij elkaar heet in het Engels een assignment statement.

Assignment statement

<variabelenaam> = <waarde>

Je mag de variabelenaam zelf bedenken, maar hij moet wel aan enkele voorwaarden voldoen:

  • De naam moet beginnen met een letter of het underscore karakter (_).

  • De naam mag niet met een cijfer beginnen.

  • De naam mag alleen letters, cijfers en het underscore karakter bevatten.

Variabelenamen zijn hoofdlettergevoelig. Dus lengte en Lengte zijn twee verschillende variabelen.

Het nut van de variabele lengte is nu nog niet zo duidelijk. Maar breid je code eens uit als volgt:

turtle_variables.py#
 1import turtle
 2
 3tony = turtle.Turtle()
 4
 5lengte = 100
 6tony.fd(lengte)
 7tony.lt(90)
 8tony.fd(lengte)
 9tony.lt(90)
10tony.fd(lengte)
11tony.lt(90)
12tony.fd(lengte)

Deze code tekent een vierkant met zijden van 100 pixels. Hoe zou je de code moeten aanpassen om zijden van 200 pixels te laten tekenen? Juist, je hoeft aleen maar regel 5 aan te passen naar lengte = 200. Zouden we geen variabele hebben gebruikt, dan had je vier regels code moeten aanpassen (regels 6, 8, 10 en 12 wijzigen naar tony.fd(200) ) en nu slechts één!

Het aardige van variabelen is dat je ermee kunt rekenen. Wijzig bijvoorbeeld je code als volgt:

turtle_variables.py#
 1import turtle
 2
 3tony = turtle.Turtle()
 4
 5lengte = 100
 6breedte = lengte / 2
 7
 8tony.fd(lengte)
 9tony.lt(90)
10tony.fd(breedte)
11tony.lt(90)
12tony.fd(lengte)
13tony.lt(90)
14tony.fd(breedte)

Begrijp je wat hier gebeurt? De variabele breedte krijgt in regel 6 de waarde lengte / 2. oftewel de helft van de lengte. De code tekent een rechthoek waarvan de breedte de helft is van de lengte.

Opdracht 01

Pas regels 5 en 6 in turtle_variables.py zodanig aan dat een rechthoek wordt getekend waarvan de breedte 20 pixels minder is dan de lengte en waarvan de lengte 180 pixels is.

Oplossing
turtle_variables.py#
 1import turtle
 2
 3tony = turtle.Turtle()
 4
 5lengte = 180
 6breedte = lengte - 20
 7
 8tony.fd(lengte)
 9tony.lt(90)
10tony.fd(breedte)
11tony.lt(90)
12tony.fd(lengte)
13tony.lt(90)
14tony.fd(breedte)
Opdracht 02

Vervang de code in turtle_variables.py door onderstaande code.

turtle_variables.py#
1import turtle
2
3tony = turtle.Turtle()
4tony.pensize(3)
5
6r = 40
7
8tony.circle(r)

Vul de code aan zodat tony om de cirkel een vierkant tekent, zoals hieronder getoond. Je moet daarbij de variabele r gebruiken.

Als je de code hebt gemaakt, geef dan in regel 6 de variabele r een andere waarde, bijvoorbeeld r = 60 en controleer dat nog steeds het juiste vierkant wordt getekend.

../_images/circle_in_square.png
Opdracht 03

Dit is een opdracht zonder turtle. Bekijk de onderstaande code en probeer eerst uit je hoofd te beredeneren wat de waarden van de variabelen getal1, getal2, getal3 en getal4 zijn nadat deze code is uitgevoerd. Controleer daarna je voorspelling door in Mu editor een nieuw bestand te maken, de code daarin te kopiëren en te runnen (sla het bestand op als hello_variables.py). Klopte je voorspelling?

1getal1 = 3
2getal2 = getal1 + 2
3getal3 = getal2 * (getal1 + getal2)
4getal4 = getal3 - getal2
5
6print("getal1 =", getal1)
7print("getal2 =", getal2)
8print("getal3 =", getal3)
9print("getal4 =", getal4)
Oplossing
getal1 = 3
getal2 = 5
getal3 = 40
getal4 = 35