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.




