Modulelessen (4/4)
Bedrukking en f-snaren
Om iets aan de gebruiker te communiceren (of om te zien wat er binnen gebeurt
ons programma) gebruiken we de ingebouwde print(...) functie. Om te componeren
tekst uit meerdere waarden, is de moderne en geprefereerde syntaxis de
f-snaar.
print(...)
print("Ciao, mondo!") # Ciao, mondo!
print("a", "b", "c") # a b c (separati da spazio)
print(2 + 2) # 4
print("riga 1", "riga 2") # riga 1 riga 2print kan zoveel argumenten bevatten als je wilt: het voegt ze samen met een spatie (door
standaard) en voegt aan het einde een nieuwe regel toe. Je kunt beide wijzigen met de
sep en end parameters:
print("a", "b", "c", sep="-") # a-b-c
print("senza newline", end="") # niente \n dopof-snaar: moderne interpolatie
Een f-string is een string voorafgegaan door f: binnen de accolades {...}
je kunt elke Python-expressie invoegen, die wordt geëvalueerd en ingevoegd in de
resultaat:
nome = "Ada"
anni = 30
print(f"Mi chiamo {nome} e ho {anni} anni.")
# Mi chiamo Ada e ho 30 anni.Binnen de accolades kun je oproepen, bewerkingen en toegang tot objecten plaatsen – dat is zo Python-code in alle opzichten:
prezzo = 12.5
quantita = 3
print(f"Totale: {prezzo * quantita:.2f} €")
# Totale: 37.50 €De :.2f na de dubbele punt is een formaatspecificatie: in dit geval "twee decimalen
cijfers, vast punt". De handigste formaatspecificaties:
:.Nf— N decimale cijfers (f"{pi:.4f}"→3.1416).:N/:>N/:<N/:^N— breedte N, uitlijning rechts/links/midden.:_of:,— scheidingsteken voor duizendtallen (f"{1000000:,}"→1,000,000).
Alternatieve syntaxis (ter referentie)
Vóór f-strings (geïntroduceerd in Python 3.6) werden daarvoor twee vormen gebruikt je zult nog steeds tegenkomen in oudere code:
# stile .format() — verboso ma esplicito
"{} ha {} anni".format("Ada", 30)
# stile %-formatting — molto vecchio
"%s ha %d anni" % ("Ada", 30)Voor nieuwe code gebruik altijd f-strings: korter, beter leesbaar, sneller.
Geavanceerde opmaak met f-strings
F-strings ondersteunen rijke opmaakspecificaties direct binnen de accolades. Als u bijvoorbeeld een decimaal getal met precies twee decimalen wilt opmaken, kunt u schrijven:
price = 19.99
print(f"Price: {price:.2f} $")De specificatie :.2f geeft aan dat we de float met exact 2 decimalen willen weergeven.
Probeer het zelf
Gegeven `naam = 'Ada'` en `leeftijd = 30`, bouwt u de string 'Ada ha 30 anni' op met een f-string en wijst u deze toe aan `line`. Evalueer 'lijn'.
Toon hint
Syntaxis: f"iets {variabel} iets anders"
Oplossing beschikbaar na 3 pogingen
Oefening beoordelen
Druk met print() de string 'pi greco vale 3.14' af, beginnend met `pi = 3.14159`, met behulp van een f-string met een formaatspecificatie van 2 decimalen.
Toon hint
De formaatspecificatie komt na de dubbele punt tussen de accolades: {pi:.2f}.
Oplossing beschikbaar na 3 pogingen
Extra uitdaging
Given a variable `price` set to `19.99`, use an f-string to construct the string `'Price: 19.99 €'` and store it in `receipt_line`. Finally, evaluate the variable.
Toon hint
Gebruik f"Prijs: {prijs} €" en wijs het resultaat toe aan ontvangst_regel.
Oplossing beschikbaar na 3 pogingen