Slik formaterer du tekst med f-strenger i Python

Lær å bruke f-strenger i Python for å sette inn variabler i tekst. Formatering, uttrykk og eksempler.

Videoforhåndsvisning

Opprett konto for å se video

Det er helt gratis og tar under 30 sekunder

Opprett gratis kontoHar du konto? Logg inn

Du har et navn i en variabel og en alder i en annen, og du vil skrive en setning som kombinerer dem. Med vanlig strengsammensetting ender du opp med pluss-tegn, mellomrom i egne strenger og str()-konverteringer overalt. F-strenger i Python løser dette med en enklere syntaks som gjør koden lettere å lese og skrive.

Slik fungerer f-strenger

Sett en f foran anførselstegnet, og bruk krøllparenteser {} rundt variablene du vil sette inn:

  • navn = "Magnus"
  • alder = 25
  • print(f"Heisan {navn}, du er {alder} år gammel")

Resultatet blir "Heisan Magnus, du er 25 år gammel". Du slipper å konvertere alder til en streng manuelt. F-strengen håndterer det automatisk. Glemmer du f-en foran anførselstegnet, får du den bokstavelige teksten "{navn}" i stedet for verdien.

Tre måter å formatere tekst i Python

Python har tre formateringsmetoder, og det er nyttig å kjenne til alle tre fordi du vil støte på dem i andres kode.

Den eldste bruker %-operatoren: "Heisan %s, du er %s år" % (navn, alder). Du plasserer %s der variablene skal inn og lister dem etter et prosenttegn. Denne syntaksen er arvet fra C-programmering og føles tungvint.

Den neste metoden bruker .format(): "Heisan {}, du er {} år".format(navn, alder). Krøllparenteser markerer plasseringene, og variablene sendes inn som argumenter til format(). Bedre enn %-operatoren, men fortsatt mer skriving enn nødvendig.

F-strenger kom i Python 3.6 og er den anbefalte metoden i dag. Variablene skrives rett inn i krøllparentesene, og koden leser nesten som vanlig tekst. Bruk f-strenger i all ny kode du skriver.

Regn ut uttrykk rett i f-strengen

Krøllparentesene i f-strenger tar ikke bare variabler. Du kan skrive hele uttrykk inne i dem:

  • f"5 + 3 = {5 + 3}" gir "5 + 3 = 8".
  • f"{navn.upper()}" gir "MAGNUS".
  • f"Du er født i {2026 - alder}" gir "Du er født i 2001".

Alt som returnerer en verdi kan stå inne i krøllparentesene. Det inkluderer funksjonskall, stringmetoder og matematiske operasjoner. Hold uttrykkene korte. Blir beregningen kompleks, er det bedre å lagre resultatet i en variabel først og referere til den i f-strengen.

Formater tall med f-strenger

F-strenger har innebygd støtte for tallformatering. Du legger til et kolon og et formateringsdirektiv etter variabelnavnet:

  • f"{pris:.2f}" viser tallet med to desimaler. 19.9 blir "19.90".
  • f"{prosent:.1%}" viser en desimal som prosent. 0.856 blir "85.6%".
  • f"{stort_tall:,}" legger til tusenskilletegn. 1000000 blir "1,000,000".
  • f"{tall:>10}" høyrejusterer tallet i et felt på 10 tegn.

Desimalformatering er spesielt nyttig for priser og økonomiske data. Uten formatering viser Python gjerne 19.899999999999 i stedet for 19.90, fordi flyttall ikke alltid representeres nøyaktig i minnet.

Juster tekst med f-strenger

Skal du lage tabeller eller justerte utskrifter i terminalen, bruker du justering inne i krøllparentesene:

  • f"{tekst:<20}" venstrejusterer i et felt på 20 tegn.
  • f"{tekst:>20}" høyrejusterer.
  • f"{tekst:^20}" sentrerer.

Du kan også velge fylltegn. f"{tekst:*^20}" sentrerer teksten og fyller resten med stjerner. Nyttig for enkel formatering i kommandolinjeprogrammer.

F-strenger med flerlinjet tekst

F-strenger fungerer med trippel-anførselstegn for tekst som går over flere linjer. Sett f foran de tre anførselstegnene, og du kan bruke krøllparenteser på alle linjene:

  • f"""
  • Navn: {navn}
  • Alder: {alder}
  • Født: {2026 - alder}
  • """

Denne teknikken er spesielt praktisk for e-postmaler, rapporter og strukturert utskrift der du vil se formateringen tydelig i koden. Husk at innrykk i koden også blir med i strengen. Vil du unngå ekstra mellomrom, plasser teksten helt til venstre eller bruk textwrap.dedent() fra standardbiblioteket.

Debugging med f-strenger

Fra Python 3.8 kan du legge til et likhetstegn etter variabelnavnet for å se både navnet og verdien: f"{alder=}" gir "alder=25". Denne lille syntaksen sparer deg for å skrive f"alder={alder}" manuelt. Nyttig når du feilsøker og raskt vil sjekke verdien til flere variabler uten å skrive lange print-setninger.

Vanlige feil med f-strenger i Python

Den vanligste feilen er å glemme f-en foran strengen. Da tolker Python krøllparentesene bokstavelig, og du ser {navn} i utskriften i stedet for verdien. Feilen gir ingen feilmelding, så den er lett å overse.

En annen feil er å bruke samme type anførselstegn inne i krøllparentesene som utenfor. Skriver du f"Hei {d["navn"]}", krasjer Python fordi den tror strengen slutter ved det andre doble anførselstegnet. Løsningen er å bruke enkle anførselstegn inne i krøllparentesene: f"Hei {d['navn']}".

Pass også på krøllparenteser som skal vises bokstavelig. Trenger du å skrive en faktisk { i f-strengen, dobler du den: f"{{}}" gir "{}" i utskriften. Uten dobling tror Python du starter et uttrykk og gir en SyntaxError.

Neste steg

F-strenger gjør utskrift elegant, men de virkelig nyttige programmene tar også imot tekst fra brukeren. Artikkelen om input i Python viser deg hvordan. Skal du bygge programmer med betingelser og løkker, tar kontrollflyt deg videre. Pythons offisielle dokumentasjon for f-strenger dekker alle formateringsmuligheter i detalj.

Denne artikkelen bygger på kurset Python for nybegynnere på Utdannet.no. I kurset lærer du f-strenger sammen med indeksering, slicing og andre strengteknikker, og du bygger programmer som kombinerer alt i praksis.