Hvad er Python f-strings?
Med Python f-strings kan du indsætte komplekse udtryk og variabler direkte i en streng uden at skulle foretage yderligere konverteringer eller formatering.
Hvad kan Python f-strings gøre?
Python f-strings er et Python-strengformat, der blev introduceret med Python 3.6. De er også kendt som formaterede strengliteraler. Inden for en f-string kan du evaluere beregninger ved hjælp af krøllede parenteser. F-strings tillader en mere kompakt notation end andre strengformater som str.format() og sammenkædning 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 forskellige datatyper som heltal, flydende tal, lister, udtryk og funktioner uden at konvertere dem eller tilføje særlig formatering. Python f-strenge er som regel hurtigere end andre strengformateringsmetoder i Python.
Hvad er syntaksen for Python f-strenge?
Den grundlæggende struktur i en Python f-streng består af præfikset f eller F efterfulgt af en streng i anførselstegn (“ eller ’). Inden for strengen kan du bruge krøllede parenteser {} 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.pythonI dette eksempel sætter vi variablerne name og age i krøllede parenteser i f-strengen{name} og {age}.
Hvordan bruges Python f-strings?
F-strenge kan bruges på mange forskellige måder.
Udførelse af beregninger inden for en streng
Python f-strenge er især praktiske, hvis du vil udføre aritmetiske beregninger 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 15pythonI dette eksempel tilføjes num1 og num2 inden for f-strengen. Resultatet vises i den endelige strengoutput.
Python f-strenge og rå strenge
Kombinationen 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 funktionaliteten af rå strenge med fleksibiliteten af f-strenge. R-strenge fortolker escape-sekvenser bogstaveligt, 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.txtpythonI ovenstående 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 bogstaveligt tegn og ikke som en del af en escape-sekvens.
Præcision af flydende tal
Du kan bruge specielle formateringssætninger 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.142pythonI ovenstående kode angiver formateringssætningen :.3f, at variablen value skal afrundes til tre decimaler og indsættes i den formaterede streng.
Bredde og justering
I Python f-strenge giver bredde- og justeringsspecifikationer dig mulighed for at kontrollere, 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øjrestill det i et felt, der er 10 tegn bredt.
name = "Alice"
formatted_name = f"Hello, {name:>10}"
print(formatted_name) # Output: Hello, AlicepythonDa værdien er mindre end 10 tegn lang, vil {name:>10} højrestillede den.
Udfyldning med nuller eller andre tegn
Udfyldning med nuller eller andre tegn påvirker justeringen af tal i et felt. Dette er nyttigt, hvis du ønsker tal i et fast format, f.eks. når du viser tidspunkter eller numeriske værdier.
number = 42
formatted_number = f"Number: {number:06}"
print(formatted_number) # Output: Number: 000042pythonI dette eksempel angiver :06, at tallet for number skal indtastes i et sekscifret felt, og at eventuelle manglende cifre skal udfyldes med foranstillede 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