Les 4 - Functies maken
Last updated
Was this helpful?
Last updated
Was this helpful?
We gaan in deze lesbrief aan de slag met het maken van functies.
Je gebruikt al functies al je iets tekent met turtle:
turtle.forward()
- een functie om de turtle vooruit te laten gaan
turtle.left()
- draai de turtle
range(4)
- maak een lijstje met de getallen 0, 1, 2 en 3
Eigenlijk alles waar je ()-jes achter zet in Python is een functie.
Je weet dan niet hoe het programma de turtle beweegt, je weet wel wat er uiteindelijk gebeurt. We kunnen ook zelf functies maken. En dit is echt superhandig.
Kijk naar dit figuur:
We hebben 3 vierkanten naast elkaar staan die niet aan elkaar vast zitten.
We kunnen dit doen door met de volgende code:
Mooie code toch? Maar wat nu als we de vierkanten niet 20 maar 30 groot willen hebben? We moeten dan de code op regel 4, 13 en 22 veranderen. Op drie plekken dus! Zie code hieronder.
En als we nog meer vierkanten zouden tekenen zouden we het op nog meer plekken moeten doen! Dubbele code is meestal niet handig. We maken nu een functie die alleen een vierkant tekent:
En op elke plek waar we een vierkant willen schrijven we:
in plaats van
Dus dan krijgen we:
Als je nu andere grootte vierkanten wilt, hoef je het maar op één plek te veranderen.
Opdracht 1
Bekijk de code hieronder en voer hem uit. Maak een functie waarmee je een driehoek tekent en verbeter daarmee de code. Uitdaging: Gebruik een loop en teken de driehoeken in maximaal 13 regels code.
Maak gebruik van functies om de volgende slinger te tekenen.
Denk erom: je moet twee functies maken en loops gebruiken!
Met de onderstaande regels zorg je ervoor dat de turtle een huis tekent.
Het zou toch echt makkelijker zijn als je de computer in een keer had kunnen zeggen dat de turtle een huis had moeten tekenen. Wat zou het handig zijn als je een opdracht zoiets als tekenhuis()
had kunnen invoeren die dan direct voor jou het huis tekent. Dit kan natuurlijk door het maken van een functie.
Belangrijk
Je hoeft maar één keer aan te geven wat een functie moet doen.
Daarna kun je meerdere malen gebruik maken van deze functie door slechts de naam van de functie op te schrijven met () erachter.
We gaan eerst een functie tekenhuis() maken:
Merk op dat je bij het maken van zo'n functie met de afkorting def begint. def staat voor definieer. Dus je definieert een functie genaamd tekenhuis. De haakjes erachter horen er altijd bij.
Belangrijk
Alle opdrachten die bij de functie horen moeten worden ingesprongen (dus een tab ervoor).
Nu heb je dus eigenlijk je eigen commando/functie gemaakt. Deze functie kun je zo vaak aanroepen als je wilt.
Probeer maar eens het programma uit:
Let vooral op regel 16 en 27. Door de opdracht tekenhuis()
twee keer te geven, worden er twee huizen getekend. Door na het eerste huisje, de turtle te verplaatsen, wordt het tweede huisje ernaast getekend.
Opdracht 2
Pas het programma nu aan zodat niet twee, maar drie huizen worden getekend.
Opdracht 3
Pas nu het programma aan zodat er zes huizen naast elkaar worden getekend. Maak gebruik van een loop/herhaling!
Opdracht 4
Je krijgt de functie tekenster()
cadeau:
Verander het programma nu zo, zodat de tekenster functie twee keer wordt aangeroepen, maar zorg ervoor dat de turtle de tweede ster op een andere plek gaat tekenen.
Maak nu een programma waarbij de turtle drie sterren naast elkaar gaat tekenen. Maak gebruik van een loop! Het moet er als volgt uitzien:
Opdracht 5
Maak drie functies. Een functie genaamd vierkant100()
die een vierkant met zijden van 100 pixels tekent. Een functie genaamd vierkant150()
die een vierkant met zijden van 150 pixels tekent. En een functie genaamd vierkant200()
die een vierkant met zijden van 200 pixels tekent. Roep alle drie de functies vervolgens achter elkaar aan. Het resultaat moet er als volgt uitzien:
Opdracht 6
Maak een functie om het volgende figuur te tekenen:
Maak daarna hiermee een programma dat het volgende tekent:
Inleveropdracht - Vierkantbloem
Maak het onderstaande figuur na.
(Extra uitdaging!) Kun je het programma ook zo aanpassen dat elk vierkantje een andere kleur krijgt?
Opdracht 7
Maak een programma waarmee je tekening die hierboven staat namaakt. Je mag beginnen met het volgende programma dat al één rij huizen tekent:
Functies maken en gebruiken in Python: