# 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.

```python
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.
```

I 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.

```python
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
```

I 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.

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

I 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.

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

I 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.

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

Da 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**.

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

I 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:

```python
word = "Python"
formatted_word = f"Word: {word:_<10}"
print(formatted_word) # Output: Word: Python____
```


This is a markdown version of: [https://www.ionos.com/da-dk/digitalguide/websteder/webudvikling/python-f-strenge/](https://www.ionos.com/da-dk/digitalguide/websteder/webudvikling/python-f-strenge/) for AI/LLM consumption.