Ga naar hoofdinhoud

Stap 3: De getallen erbij (f-strings)

info

Deze stap gebruikt een f-string, uit Slimme berichten met f-strings.

Je ziet welke staaf het hoogst is, maar niet hoeveel minuten het zijn. Met turtle.write() zet de schildpad tekst in de tekening. De tekst begint waar de schildpad staat en loopt naar rechts, met de onderkant van de letters op zijn hoogte. De schildpad zelf blijft staan.

import turtle

waarde = 110
turtle.write(f"{waarde} min")

De f-string maakt van het getal de tekst 110 min. Die komt rechts van het midden van het venster te staan, want daar begint de schildpad.

Opdracht: minuten boven elke staaf​

Plak je programma uit stap 2 in het veld. Ben je het kwijt, neem dan de oplossing van stap 2.

Zet boven elke staaf het aantal minuten, zoals 110 min. De tekst begint bij de linkerkant van de staaf, 5 hoger dan de bovenkant. Til de pen op voordat de schildpad erheen gaat, anders trekt hij een streep.

Vijf lichtblauwe staven, met boven elke staaf het aantal minuten, links uitgelijnd: 65 min, 110 min, 80 min, 45 min en 30 min

# Plak hier je programma uit stap 2
Klik hier voor een tip.

De linkerkant van de staaf is plek. De grond ligt op -100, dus de bovenkant van een staaf ligt de hoogte boven -100. In de loop, na de staaf, gaat de pen omhoog, gaat de schildpad naar het punt boven de staaf, en schrijft hij daar de f-string.

Klik hier voor de oplossing.
import turtle

minuten = [65, 110, 80, 45, 30]

def staaf(x, hoogte):
turtle.penup()
turtle.goto(x, -100)
turtle.pendown()
turtle.fillcolor("skyblue")
turtle.begin_fill()
for zijde in range(2):
turtle.forward(60)
turtle.left(90)
turtle.forward(hoogte)
turtle.left(90)
turtle.end_fill()

plek = -200
for waarde in minuten:
staaf(plek, waarde)
turtle.penup()
turtle.goto(plek, -100 + waarde + 5)
turtle.write(f"{waarde} min")
plek += 80
turtle.hideturtle()

-100 + waarde is de bovenkant van de staaf, en + 5 zet de tekst er net boven.

Er gaat iets mis​

TypeError: unsupported operand type(s) for +: 'int' and 'str'

Oorzaak: je schreef waarde + " min". Met + plak je tekst aan tekst, maar waarde is een getal. Een getal en een tekst kan Python niet optellen.

Oplossing: zet het getal in een f-string: f"{waarde} min". Die maakt er zelf tekst van.

Kopieer je programma voordat je verdergaat: de editor bewaart het niet.

Door naar stap 4: in het midden.