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.
In het volgende figuur hebben we 3 vierkanten naast elkaar staan die niet aan elkaar vast zitten.
We kunnen dit doen door met de volgende code:
import turtlefor _ inrange(4):# Maak turtle.forward(20)# een turtle.right(90)# vierkantturtle.penup()turtle.forward(30)turtle.left(90)turtle.pendown()for _ inrange(4):# Maak turtle.forward(20)# een turtle.right(90)# vierkantturtle.penup()turtle.right(90)turtle.forward(30)turtle.pendown()for _ inrange(4):# Maak turtle.forward(20)# een turtle.right(90)# vierkant
Mooi, mooie code toch? Maar wat nu als we de vierkanten niet 20 maar 30 groot willen hebben? We moeten dan de gele regels code veranderen:
import turtlefor _ inrange(4):# Maak een vierkant turtle.forward(20) turtle.right(90)turtle.penup()turtle.forward(30)turtle.left(90)turtle.pendown()for _ inrange(4):# Maak een vierkant turtle.forward(20) turtle.right(90)turtle.penup()turtle.right(90)turtle.forward(30)turtle.pendown()for _ inrange(4):# Maak een vierkant turtle.forward(20) turtle.right(90)
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:
defvierkant():for _ inrange(4):# Maak een vierkant turtle.forward(20) turtle.right(90)
En op elke plek waar we een vierkant willen schrijven we:
vierkant()
in plaats van
for _ inrange(4):# Maak een vierkant turtle.forward(20) turtle.right(90)
Als je nu andere grootte vierkanten wilt, hoef je het maar op één plek te veranderen.
Opdracht 1
Maak deze opgave in Repl.it 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.