Ga naar hoofdinhoud

4a Slimme berichten met f-strings

Je rekenmachine uit les 3 werkte, maar al die spaties in "Som: " tellen was gepruts. Met een f-string zet je tekst en variabelen in één zin.

Een f-string maken​

Een f-string is een gewone string met een f ervoor. Variabelen zet je tussen {}:

naam = "Alex"
leeftijd = 15

print(f"Hallo, ik ben {naam} en ik ben {leeftijd} jaar oud.")

Uitvoer:

Hallo, ik ben Alex en ik ben 15 jaar oud.

Je kunt ook berekeningen doen binnen de accolades:

leeftijd = 15

print(f"Volgend jaar ben ik {leeftijd + 1} jaar.")

Uitvoer:

Volgend jaar ben ik 16 jaar.

Tussen de accolades mag elke Python-uitdrukking staan: een variabele, een berekening, of een functie zoals len() uit de volgende les.

naam = "Alex"

print("Hallo, {naam}")
Voorspel
Wat zet dit programma op het scherm?
Kies wat jij denkt. Bij het goede antwoord zie je de uitleg.

Er gaat iets mis​

De f vergeten

Zie je in je uitvoer {naam} staan in plaats van de naam, dan mist de f voor de aanhalingstekens. Python geeft geen foutmelding, dus deze fout zie je alleen aan de uitvoer.

Tekst en een getal met + aan elkaar plakken

leeftijd = 15
print("Ik ben " + leeftijd + " jaar oud.")

Uitvoer:

TypeError: can only concatenate str (not "int") to str

Met + plak je alleen tekst aan tekst, en leeftijd is een getal. Een f-string heeft daar geen last van: print(f"Ik ben {leeftijd} jaar oud.").


Opdracht 4a.1: Begroeting​

Maak een variabele naam met je eigen naam, en print Hallo, [naam]! met een f-string.

# Schrijf hier je code
Klik hier voor een tip.

Gebruik f"..." en zet {naam} op de plek waar je naam moet komen.

Klik hier voor de oplossing.
naam = "Alex"

print(f"Hallo, {naam}!")
naam = "Alex"

print(f"Hallo, {naam}!")

Opdracht 4a.2: Volgend jaar​

Maak twee variabelen (naam en leeftijd). Print één zin die zegt hoe oud je volgend jaar wordt.

Verwachte uitvoer (bij naam = "Alex" en leeftijd = 15):

Hoi Alex! Volgend jaar word je 16.
# Schrijf hier je code
Klik hier voor een tip.

Eén print() met een f-string die zowel {naam} als {leeftijd + 1} bevat.

Klik hier voor de oplossing.
naam = "Alex"
leeftijd = 15

print(f"Hoi {naam}! Volgend jaar word je {leeftijd + 1}.")
naam = "Alex"
leeftijd = 15

print(f"Hoi {naam}! Volgend jaar word je {leeftijd + 1}.")

Opdracht 4a.3: Rekenmachine met f-strings​

Herschrijf de rekenmachine uit les 3 met f-strings, zodat elke berekening op één regel staat.

Verwachte uitvoer (bij a = 10, b = 4):

10 + 4 = 14
10 - 4 = 6
10 x 4 = 40
10 / 4 = 2.5
# Schrijf hier je code
Klik hier voor een tip.

Eén f-string per berekening: f"{a} + {b} = {a + b}". Voor de andere drie operatoren werkt het hetzelfde.

Klik hier voor de oplossing.
a = 10
b = 4

print(f"{a} + {b} = {a + b}")
print(f"{a} - {b} = {a - b}")
print(f"{a} x {b} = {a * b}")
print(f"{a} / {b} = {a / b}")
a = 10
b = 4

print(f"{a} + {b} = {a + b}")
print(f"{a} - {b} = {a - b}")
print(f"{a} x {b} = {a * b}")
print(f"{a} / {b} = {a / b}")
Waar kom je dit later weer tegen?

Elke nette uitvoer in de algoritmes-cursus is een f-string: minimax print er zijn borden mee, dijkstra zijn afstandentabel.