Gebruikershulpmiddelen

Site-hulpmiddelen


program:python:format

De python .format() instruktie

Een hele bruikbare string functie is de .format() instructie. Hiermee kun je variabelen in een tekst plaatsen en heel precies aangeven hoe je die variabele in die tekst wil zien.

[Programmeren met Python] [sbczob.eu]

Variabelen in een tekst plaatsen

Wanneer je een tekst definiëert, kun je een speciale sequence van acculade openen en sluiten gebruiken om aan te geven waar je variabelen in die tekst wil plaatsen.
Een voorbeeld: tekst = “Deze tekst bevat een variabele: {}”

Met behulp van de format() instruktie, kunnen we nu aangeven dat de acculades {} vervangen moet worden door de variabele gespecificeert in de instruktie, bijvoorbeeld: tekst.format(“Januari”). Let op, de variabele tekst zal zelf niet veranderen, maar de funktie tekst.format(“Januari”) geeft de geformateerde tekst “Deze tekst bevat een variabele: Januari” terug.

Andere voorbeelden:

  • tekst.format(3.25)
  • tekst.format(12)
  • tekst.format(“aap”)
  • tekst.format(getal)

Je ziet aan de voorbeelden ], dat je elk type variabele kunt gebruiken, zowel als vaste tekst of getallen, maar ook als echte variabele, zoals de variabele “getal”.

Kijk nu eens naar het volgende programma:

a = 10
b = 25
som = a + b
tekst = "Som: {} + {} = {}"        # De acculades gaan we zo dadelijk vervangen,
                                   # door respectievelijk a, b en som.
print(tekst.format(a,b,som))       # Hier wordt de output van de funktie tekst.format()
                                   # weergegeven!

Het resultaat van dit programma is:

>>> Run -c $EDITOR_CONTENT
 Som: 10 + 25 = 35
>>> 

[top] [Programmeren met Python] [sbczob.eu]

Geformateerd printen

De .format() instruktie kun je op een tekst variabele gebruiken, maar uiteraard ook op een tekst binnen een print commando. Daarmee kun je dus specificeren hoe je wilt printen, oftewel geformateerd printen.
Het printcommando van hierboven kun je dan schrijven als: print(“Som: {} + {} = {}”.format(a,b,som)). De tekst binnen het print commando geef je eigenlijk mee met de .format() instructie, welke uiteindelijk de geformateerde tekst oplevert, die je wilt hebben.

Meer mogelijke formatering opties:

  • {:7}: De lengte van de geformateerde tekst is (minimaal) zeven karakters lang.
    Een kortere tekst wordt aangevuld met spaties achteraf, terwijl een getal aangevuld wordt met spaties vooraf.
  • {:d}: Integer (geheel) getal.
    Een ander variabele type geeft een uitvoer foutmelding.
  • {:f}: Float (gebroken) getal.
    Python geeft een default aantal cijfers 1) achter de komma (eventueel aangevuld met nullen). Ook hier geeft een niet getal type een uitvoer foutmelding.
  • {:5d}: Een integer getal, minimaal vijf karakters lang.
    Een korter getal wordt vooraf aangevuld met spaties.
  • {:6f}: Een float getal, minimaal zes karakters lang.
    Ook hier geeft python een default aantal cijfers achter de komma, waardoor de totale lengte groter kan worden als de zes gespecificeerde karakterlengte.
  • {:.2f}: Een float getal, met maximaal twee cijfers achter de komma.
    Minder cijfers achter de komma worden aangevuld met nullen, meer cijfers achter de komma wordt afgerond als in de round() funktie.
  • {:7.2f}: Een combinatie van totaal aantal karakters en afronding op twee cijfers achter de komma.
    Wanneer het totaal aantal karakters korter is als zeven, wordt het cijfer vooraf aangevuld met spaties. Tegelijkertijd, wanneer het aantal cijfers achter de komma minder is dan twee, wordt ook hier de cijfers achter de komma aangevuld met nullen. En evenwel, als er meer dan twee cijfers achter de komma staan, zal er afgerond worden volgens round().

Nog een drietal formaterings mogelijkheden, waarmee je variabelen kunt uitlijnen (al dan niet in combinatie van bovenstaande formaterings opties):

  • {:<}: De geformateerde output wordt links uitgelijnd.
  • {:>}: De geformateerde output wordt rechts uitgelijnd.
  • {:^}: De geformateerde output wordt gecentreerd.

Meer over de .format instructie, kun je vinden op: W3Schools

[top] [Programmeren met Python] [sbczob.eu]


Formatering voorbeeld

Tot besluit nogmaals het tafels programma, maar nu geformateerd geprint:

tafels_geformateerd.py
#! /usr/bin/env python3
# ======================================
# Programma naam: tafels_geformateerd.py
 
print("{:6}".format("Tafel"),end='')          # Print de top-header lijn, 7 karakters breed
for j in range(10):
    print("{:4d}".format(j+1),end='')         # Print elk getal vijf karakters breed.
print()                                       # De lus gaan niet naar de volgende regel,
                                              # dus forceren we dit met een leeg print()-
                                              # commando.
print("{:6}".format("van:"))                  # De "van:" tekst is de enige tekst, dus
                                              # volstaat alleen dit te printen
for i in range(10):
    print("{:5d}:".format(i+1),end='')        # Print het nummer van de tafel die we
    for j in range(10):                       # berekenen en ga naar de volgende <tab>
        product = (i+1) * (j+1)               # Bereken de tafel
        print("{:4d}".format(product),end='') # Print het resultaat, vijf karakters breed
    print()                                   # De tafel presentatie  is klaar, ga naar
                                              # de volgende regel.
print()                                       # Ter afsluiting, print een lege regel!
print("klaar")

[top] [Programmeren met Python] [sbczob.eu]

1)
Bij mijn Python interprenter geeft python zes cijfers achter de komma
program/python/format.txt · Laatst gewijzigd: 2024/04/22 23:30 door sbczobbeheerder