web2 logo

Python f-strings

Python f-strings zijn strings die tussen gekrulde haken Python uitdrukkingen bevatten die door Python vervangen worden door hun waarden. Een Python f-string is een string waar de letter f voorgezet is. Dit mag een kleine letter f zijn, maar ook een hoofdletter F werkt. Voorbeeld: naam = 'Kees' tekst = f'Hallo {naam}' print(tekst) # resultaat: Hallo Kees Als je vergeet om de string vooraf te laten gaan door een f, dan krijg je dit: Hallo {naam} Als je juist wel de naam van de variabele wil in plaats van de waarde, dan kun je dubbel gekrulde haken gebruiken: naam = 'Kees' tekst = f'Hallo {{naam}}' print(tekst) # resultaat: Hallo {naam} Je kunt ook meerdere Python uitdrukkingen in een string gebruiken: boek = 'Leer Python terwijl je slaapt' aantal_paginas = 735 tekst = f'Het boek "{boek}" bevat {aantal_paginas} bladzijden en leest makkelijk weg.' print(tekst) # resultaat: Het boek "Leer Python terwijl je slaapt" bevat 735 bladzijden en leest makkelijk weg. Tussen de gekrulde haken mag je geen commentaar gebruiken: boek = 'Leer Python terwijl je slaapt' aantal_paginas = 735 tekst = f'Het boek "{boek # goed boek}" bevat {aantal_paginas} bladzijden en leest makkelijk weg.' print(tekst) # foutmelding: SyntaxError: f-string expression part cannot include '#'

Berekeningen gebruiken in een f-string

De uitdrukkingen tussen de gekrulde haken mogen ook berekeningen bevatten: prijs = 200 btw_perc = 21 tekst = f'De prijs van dit artikel is: {(prijs + prijs * btw_perc/100):.2f}' print(tekst) # resultaat: De prijs van dit artikel is: 242.00 De dubbele punt gevolgd door punt 2 f (:.2f) zorgt ervoor dat er 2 cijfers achter de komma komen.

Percentages weergeven in een f-string

Percentages kunnen gemakkelijk worden weergegeven in een f-string: totaal = 5432 gedeelte = 657 percentage = gedeelte/totaal print(percentage) print(f'Het percentage is: {percentage:.2%}') # resultaat: 0.1209499263622975 Het percentage is: 12.09% Het percentageteken in de f-string zorgt voor vermenigvuldiging met 100 en het weergeven van het percentageteken, de punt 2 bepaalt het aantal cijfers achter de komma, in dit geval is dat 2.

F-strings uitlijnen en opvullen

Je kunt het aantal karakters dat een f-string moet bevatten meegeven, als de werkelijke tekst korter is, dan wordt de f-string verder opgevuld met spaties. De uitlijning bepaald dan waar die spaties komen. De uitlijning kun je aangeven met het groter dan teken '>' voor rechts uitlijnen, het kleiner dan teken '<' voor links uitlijnen en het dakje '^' voor centreren. Voorbeelden: woord = 'hallo' print(f'*{woord:>11}*') print(f'*{woord:<11}*') print(f'*{woord:^11}*') # resultaat: * hallo* *hallo * * hallo *

Condities gebruiken in f-strings

In f-strings kun je ook met if-else condities werken. Let er hierbij op dat de f-strings worden ingevuld op het moment dat ze worden toegekend, niet op het moment dat ze worden geprint. prijs = 100 tekst1 = 'met korting' tekst2 = 'voordelig' aanbieding = f'Dit is {tekst1 if prijs < 100 else tekst2}' print(aanbieding) prijs = 90 print(aanbieding) print(f'Dit is {tekst1 if prijs < 100 else tekst2}') # resultaat: Dit is voordelig Dit is voordelig Dit is met korting Zoals je hierboven ziet, de tweede regel die wordt geprint heeft niet de tekst die je verwacht omdat de f-string al werd bepaald op het moment dat deze werd toegekend aan de variabele aanbieding en de variable prijs werd pas na die toekenning aangepast.

Datum en tijd in f-strings

Datum en tijd kun je formatteren in f-strings zoals je dat ook kan in str.format: import datetime now = datetime.datetime.now() print(f'{now:%Y-%m-%d %H:%M:%S}') # resultaat # (dit is natuurlijk afhankelijk van wanneer je dit doet): 2022-03-26 13:26:27

Voorloopnullen toevoegen in f-strings

Je kunt voorloopnullen toevoegen aan een getal in een f-string via de dubbele punt gevolgd door een nul en dan het aantal cijfers die je in totaal wil hebben. getal = 538 print(f'10 cijfers: {getal:010}') print(f'plus of min met teken vooraf: {getal:+010}') getal = -538 # een negatief getal krijgt altijd een minteken print(f'10 cijfers: {getal:010}') print(f'plus of min met teken vooraf: {getal:+010}') # resultaat: 10 cijfers: 0000000538 plus of min met teken vooraf: +000000538 10 cijfers: -000000538 plus of min met teken vooraf: -000000538

Meerdere regels in een f-string gebruiken

Met backslash n ('\n') kun je een nieuwe regel aangeven in een Python string. Een backslash mag je echter niet gebruiken in een uitdrukking tussen gekrulde haken in een f-string: getal1 = 123 getal2 = 456 getal3 = 789 print(f'getal1 = {getal1\n}getal2 = {getal2\n}getal3 = {getal3\n}') # resultaat: SyntaxError: f-string expression part cannot include a backslash Er zijn verschillende manieren om dit op te lossen. Eerste oplossing: de backslash n buiten de gekrulde haken opnemen: getal1 = 123 getal2 = 456 getal3 = 789 print(f'getal1 = {getal1}\ngetal2 = {getal2}\ngetal3 = {getal3}\n') # resultaat: getal1 = 123 getal2 = 456 getal3 = 789 Tweede oplossing: een docstring met drie aanhalingstekens gebruiken: getal1 = 123 getal2 = 456 getal3 = 789 print(f'''getal1 = {getal1} getal2 = {getal2} getal3 = {getal3} ''') # resultaat: getal1 = 123 getal2 = 456 getal3 = 789 Derde oplossing: de backslash n opnemen in de variabelen: getal1 = '123\n' getal2 = '456\n' getal3 = '789\n' print(f'getal1 = {getal1}getal2 = {getal2}getal3 = {getal3}') # resultaat: getal1 = 123 getal2 = 456 getal3 = 789

naar boven

term zoeken