f-strings in Python tutorial: hoe gebruik ik variabelen in een string? (2024)

Met f-strings kun je op gemakkelijke wijze een string voorzien van waarden uit variabelen. Denk hiervoor bijvoorbeeld aan een boodschap die je tijdens het uitvoeren van je code print, met hierin de waarden van enkele variabelen. Daarbij kun je instellen hoe de variabelen getoond gaan worden. Bijvoorbeeld het aantal decimalen van een kommagetal.

In dit blog behandelen we de volgende onderwerpen:

  1. F-string syntax
  2. Waarom zou je F-strings gebruiken?
  3. Percentages in f-strings
  4. Datums in f-strings
  5. Padding en uitlijning binnen f-strings
  6. Multi-lines f-strings

1. F-string syntax

De ”f” in f-string staat voor format/formatting: opmaken.

We bekijken het volgende voorbeeld:

In[1]:

length = 1.7542message = f"The length is: {length} meters."print(message)
The length is: 1.7542 meters.

Hierin doen we het volgende:

  • Maken variabele “length” aan: een float met een bepaalde lengte.
  • Maken variabele “message” aan: met een f-string geven we een boodschap op, en gebruiken we de waarde van variabele “length”.
  • Met de print() functie printen we de waarde van variabele “message”.

We zien hier dat de syntax van een f-string als volgt is:

In[3]:

variable = f"<>{other_varible}<>"
  • Je start met een f.
  • Met enkelvoudige of dubbele quotes geef je een string op.
  • Daar waar de waarde van een variabele moet komen zet je deze tussen accolades: {<variabele>}.

Je kunt daarbij zoveel variabelen in de f-string toevoegen als nodig is. Zie onderstaand voorbeeld met 3 variabelen in de f-string:

In[4]:

first_name = "John"last_name = "Doe"length = 1.7542message = f"The length of {first_name} {last_name} is: {length} meters."print(message)
The length of John Doe is: 1.7542 meters.

Met vertrouwen Python inzetten voor data analyses? Schrijf je in voor een van onze trainingen.



2. Waarom zou je F-strings gebruiken?

Je gebruikt een f-string om een string op te maken met waarden van variabelen. De f-string functionaliteit is beschikbaar sinds Python versie 3.6 (zie ook Python 2 vs Python 3). Hiervoor kon je voor hetzelfde doel gebruik maken van bijvoorbeeld de .format() methode en het % teken.

Het gebruik van de f-string is fijner dan deze andere opties. Het is beter leesbaar en het is sneller.

3. Getallen gebruiken in f-strings

We hebben al gezien dat we met een f-string een getal in een string kunnen voegen. Zie nogmaals onderstaand voorbeeld om een boodschap met een lengte te verkrijgen:

In[8]:

length = 1.7562message = f"The length is: {length} meters."print(message)
The length is: 1.7562 meters.

Nu kan het zo zijn dat je het aantal decimalen wilt limiteren. Dit kan gemakkelijk.

Hiervoor voegen we achter de naam van de variabele het volgende toe: :.<aantal decimalen>f

Zie onderstaand voorbeeld waarbij 2 decimalen getoond worden:

In[12]:

length = 1.7562message = f"The length is: {length:.2f} meters."print(message)
The length is: 1.76 meters.

Een bijkomend voordeel is dat er ook direct afgerond wordt.

Bij grote getallen kun je voor leesbaarheid een duizendscheidingsteken toevoegen. Dit is te zien in het volgende voorbeeld:

In[32]:

weight = 785634.3682message = f"It weights: {weight:,.2f} grams."print(message)
It weights: 785,634.37 grams.

Hierbij zet je het duizendscheidingsteken na de dubbele punt.

4. Percentages in f-strings

Een specifiek voorbeeld van een getal is een percentage. Hier kan een f-string ook goed mee overweg. Dit doe je op dezelfde wijze als bij getallen, alleen nu gebruik je een %-teken in plaats van de f. Zie onderstaand voorbeeld:

In[18]:

fraction = .5894message = f"The fraction is: {fraction:.0%}."print(message)
The fraction is: 59%.

In deze code doen we het volgende:

  • Maken variabele “fraction” aan.
  • Maken variabele “message” aan: met een f-string geven we een boodschap op, en gebruiken we de waarde van variabele “fraction”. Hier gebruiken we het %-teken voor een percentage. En met .0 specificeren we dat geen decimalen getoond zullen worden.
  • We printen de boodschap.

5. Datums in f-strings

Net als getallen kunnen we ook datums toevoegen aan een string met een f-string. Zie onderstaand voorbeeld. Hierin gebruiken we package datetime om de huidige datum en tijd te verkrijgen. We gebruiken formatting-opties om e.e.a. overzichtelijk terug te laten komen.

In[25]:

from datetime import datetimenow = datetime.now()message = f"Today it is: {now:%A %d %B %Y, %H:%M}."print(message)
Today it is: Sunday 16 October 2022, 16:05.

6. Padding en uitlijning binnen f-strings

Wanneer je herhaaldelijk vergelijkbare boodschappen maakt, kan het handig zijn om gebruik te maken van padding en/of uitlijning.

Dit zie je aan de hand van onderstaand voorbeeld:

In[26]:

lengths = [1.456, 1.2, 1.45663, 1.54546, 1.5]for length in lengths: message = f"The length is: {length} meters." print(message)
The length is: 1.456 meters.The length is: 1.2 meters.The length is: 1.45663 meters.The length is: 1.54546 meters.The length is: 1.5 meters.

Hierbij printen we met een for-loop een boodschap voor elk van de gewichten uit de list. Daarbij zie je dat afhankelijk van het aantal cijfers de lengte van de boodschap varieert. Soms is dit niet wenselijk. Bijvoorbeeld als hier hierdoor minder goed leesbaar wordt zoals in onderstaand voorbeeld.

In[36]:

weights = [125, 5, 7564, 78, 12]for weight in weights: message = f"It weights: {weight} kilograms." print(message)
It weights: 125 kilograms.It weights: 5 kilograms.It weights: 7564 kilograms.It weights: 78 kilograms.It weights: 12 kilograms.

Je kunt hiervoor gebruik maken van zero-padding. Daarbij voeg je voor ieder getal een bepaald aantal nullen toe. Dit zodanig dat de totale lengte inclusief de nullen overal gelijk is. Zie onderstaand voorbeeld. De 5 geeft hierin aan dat de totale lengte gelijk is aan 5 tekens. Je kunt de 0 ook weglaten, dan wordt er lege ruimte gebruikt:

In[41]:

weights = [125, 5, 7564, 78, 12]for weight in weights: message = f"It weights: {weight:5} kilograms." print(message)
It weights: 125 kilograms.It weights: 5 kilograms.It weights: 7564 kilograms.It weights: 78 kilograms.It weights: 12 kilograms.

De gewichten zijn nu rechts uitgelijnd. Wellicht is dit niet wat je wilt.

In onderstaande code lijnen we links uit, waarbij we de ruimte voor 6 tekens reserveren:

In[47]:

weights = [125, 5, 7564, 78, 12]for weight in weights: message = f"It weights: {weight:<6} kilograms." print(message)
It weights: 125 kilograms.It weights: 5 kilograms.It weights: 7564 kilograms.It weights: 78 kilograms.It weights: 12 kilograms.
  • Hierbij betekent de 6 dat voor 6 tekens ruimte wordt gereserveerd.
  • Je gebruikt de volgende tekens voor verschillende soorten uitlijning:
    • < voor links.
    • > voor rechts.
    • ^ voor midden.

7. Multi-lines & f-strings

Het kan zijn dat je een erg lange boodschap wilt samenstellen. In dat geval is het wellicht wat veel om op 1 regel te definiëren, zoals we in onderstaand voorbeeld zien:

In[48]:

first_name = "John"last_name = "Doe"length = 1.7542weight = 78country = "The Netherlands"province = "Noord-Holland"message = f"The person {first_name} {last_name} lives in {country} in province {province}. Its length is {length} meters and its weight {weight} kilograms."print(message)
The person John Doe lives in The Netherlands in province Noord-Holland. Its length is 1.7542 meters and its weight 78 kilograms.

Dit kun je gemakkelijk opsplitsen in meerdere regels door ronde haken te gebruiken. Zie hiervoor de volgende code:

In[50]:

first_name = "John"last_name = "Doe"length = 1.7542weight = 78country = "The Netherlands"province = "Noord-Holland"message = ( f"The person {first_name} {last_name} lives in {country} in province {province}. " f"Its length is {length} meters and its weight {weight} kilograms.")print(message)
The person John Doe lives in The Netherlands in province Noord-Holland. Its length is 1.7542 meters and its weight 78 kilograms.

Let hierbij op het volgende:

  • Gebruik ronde haken.
  • Gebruik voor iedere regel een f-string.
  • Gebruik aan het einde van een regel geen komma.

Je ziet dat je zo gemakkelijk een lange boodschap in meerdere regels kunt definiëren. Dit maakt je code beter leesbaar.

8. Tot slot

We hebben gezien dat een f-string gebruik kan worden om een string op te maken met waarden uit variabelen. Dit is handig om resultaten uit je code te tonen, of voor bijvoorbeeld logging van je code.

Er zijn voor verschillende soorten data verschillende opties. Denk aan getallen, percentages en datums. Je kunt waarden van variabelen uitlijnen en padding toevoegen voor een betere leesbaarheid. Wanneer je boodschappen langer worden kun je ze in meerdere regels opsplitsen voor een betere leesbaarheid.

Wil je nog veel meer leren over met mogelijkheden met Python voor Data Science? Schrijf je dan in voor onzePython cursusvoor data science, onzemachine learning training, onze data science opleiding of onze data science bootcamp en leer met vertrouwen te programmeren en analyseren in Python. Nadat je een van onze trainingen hebt gevolgd kun je zelfstandig verder aan de slag. Je kunt ook altijd even contact opnemen als je een vraag hebt.

Download één van onze opleidingsbrochures voor meer informatie

f-strings in Python tutorial: hoe gebruik ik variabelen in een string? (2024)

References

Top Articles
Latest Posts
Article information

Author: Wyatt Volkman LLD

Last Updated:

Views: 6093

Rating: 4.6 / 5 (46 voted)

Reviews: 93% of readers found this page helpful

Author information

Name: Wyatt Volkman LLD

Birthday: 1992-02-16

Address: Suite 851 78549 Lubowitz Well, Wardside, TX 98080-8615

Phone: +67618977178100

Job: Manufacturing Director

Hobby: Running, Mountaineering, Inline skating, Writing, Baton twirling, Computer programming, Stone skipping

Introduction: My name is Wyatt Volkman LLD, I am a handsome, rich, comfortable, lively, zealous, graceful, gifted person who loves writing and wants to share my knowledge and understanding with you.