Med Python f-strings kan du indsætte komplekse udtryk og variabler direkte i en streng uden at skulle foretage yder­li­ge­re kon­ver­te­rin­ger eller for­ma­te­ring.

Hvad kan Python f-strings gøre?

Python f-strings er et Python-streng­for­mat, der blev in­tro­du­ce­ret med Python 3.6. De er også kendt som for­ma­te­re­de streng­li­te­ra­ler. Inden for en f-string kan du evaluere be­reg­nin­ger ved hjælp af krøllede pa­ren­te­ser. F-strings tillader en mere kompakt notation end andre streng­for­ma­ter som str.format() og sam­men­kæd­ning med +. Dette giver dig i sidste ende en klarere og mere koncis kode.

F-strenge er meget fleksible og giver dig mulighed for at indsætte for­skel­li­ge datatyper som heltal, flydende tal, lister, udtryk og funk­tio­ner uden at kon­ver­te­re dem eller tilføje særlig for­ma­te­ring. Python f-strenge er som regel hurtigere end andre streng­for­ma­te­rings­me­to­der i Python.

Hvad er syntaksen for Python f-strenge?

Den grund­læg­gen­de struktur i en Python f-streng består af præfikset f eller F ef­ter­fulgt af en streng i an­før­sels­tegn (“ eller ’). Inden for strengen kan du bruge krøllede pa­ren­te­ser {} til at indlejre variabler og udtryk.

name = "Peter"
age = 25
formatted_string = f"My name is {name} and I am {age} years old."
print(formatted_string) # Output: My name is Peter and I am 25 years old.
python

I dette eksempel sætter vi va­ri­ab­ler­ne name og age i krøllede pa­ren­te­ser i f-strengen{name} og {age}.

Hvordan bruges Python f-strings?

F-strenge kan bruges på mange for­skel­li­ge måder.

Udførelse af be­reg­nin­ger inden for en streng

Python f-strenge er især praktiske, hvis du vil udføre arit­me­ti­ske be­reg­nin­ger inden for en streng. De giver dig mulighed for at definere et komplekst udtryk i en enkelt kodelinje.

num1 = 10
num2 = 5
result = f"The sum of {num1} and {num2} is {num1 + num2}"
print(result) # Output: The sum of 10 and 5 is 15
python

I dette eksempel tilføjes num1 og num2 inden for f-strengen. Re­sul­ta­tet vises i den endelige strengout­put.

Python f-strenge og rå strenge

Kom­bi­na­tio­nen af r for rå strenge og f for f-strenge skaber en særlig type streng i Python, kendt som en rf-streng. Med rf-strenge kan du kombinere funk­tio­na­li­te­ten af rå strenge med flek­si­bi­li­te­ten af f-strenge. R-strenge fortolker escape-sekvenser bog­sta­ve­ligt, og f-strenge kan direkte indlejre variabler og udtryk i en streng.

name = "User"
path = rf'C:\Users\Username\Documents\{name}\file.txt'
print(path) # Output: C:\Users\Username\Documents\User\file.txt
python

I oven­stå­en­de kode brugte vi en rf-streng til at definere en sti. Vi brugte {name} i rf-strengen til direkte at indsætte variablen name. Samtidig sikrer r før strengen, at backslash \ behandles som et bog­sta­ve­ligt tegn og ikke som en del af en escape-sekvens.

Præcision af flydende tal

Du kan bruge specielle for­ma­te­rings­sæt­nin­ger til at angive antallet af decimaler i et flydende tal i en f-streng.

value = 3.14159265359
formatted_value = f"Rounded value = {value:.3f}"
print(formatted_value) # Output: Rounded value = 3.142
python

I oven­stå­en­de kode angiver for­ma­te­rings­sæt­nin­gen :.3f, at variablen value skal afrundes til tre decimaler og indsættes i den for­ma­te­re­de streng.

Bredde og justering

I Python f-strenge giver bredde- og ju­ste­rings­spe­ci­fi­ka­tio­ner dig mulighed for at kon­trol­le­re, hvordan værdier vises inden for et felt. Dette er nyttigt til at placere tekst og tal på et bestemt sted og justere dem til venstre, højre eller i midten.

Lad os sige, at vi har navnet __Alice__ og ønsker at høj­re­still det i et felt, der er 10 tegn bredt.

name = "Alice"
formatted_name = f"Hello, {name:>10}"
print(formatted_name) # Output: Hello,      Alice
python

Da værdien er mindre end 10 tegn lang, vil {name:>10} høj­re­stil­le­de den.

Ud­fyld­ning med nuller eller andre tegn

Ud­fyld­ning med nuller eller andre tegn påvirker ju­ste­rin­gen af tal i et felt. Dette er nyttigt, hvis du ønsker tal i et fast format, f.eks. når du viser tids­punk­ter eller numeriske værdier.

number = 42
formatted_number = f"Number: {number:06}"
print(formatted_number) # Output: Number: 000042
python

I dette eksempel angiver :06, at tallet for number skal indtastes i et sekscif­ret felt, og at even­tu­el­le manglende cifre skal udfyldes med for­an­stil­le­de nuller.

Du kan også bruge andre tegn end nuller til at udfylde en streng:

word = "Python"
formatted_word = f"Word: {word:_<10}"
print(formatted_word) # Output: Word: Python____
python
Gå til ho­ved­me­nu­en