# Hva er Python f-strenger?

Med Python f-strenger kan du sette inn **komplekse uttrykk og variabler** direkte i en streng, uten å måtte utføre ekstra konverteringer eller formatering.

## Hva kan Python f-strenger gjøre?

Python f-strenger er et Python-strengformat som ble introdusert med Python 3.6. De er også kjent som **formaterte strenglitteraler**. Innenfor en f-streng kan du evaluere beregninger ved hjelp av krøllparenteser. F-strenger tillater mer kompakt notasjon enn andre strengformater som `str.format()` og sammenkobling med `+`. Dette gir deg til slutt en klarere og mer konsis kode.

F-strenger er svært fleksible og lar deg sette inn ulike datatyper som **heltall, desimaltall, lister,** uttrykk og funksjoner uten å konvertere dem eller legge til spesiell formatering. Python f-strenger er ofte raskere enn andre strengformateringsmetoder i Python.

## Hva er syntaksen til Python f-strenger?

Den grunnleggende strukturen til en Python f-streng består av **prefikset** `f` eller `F`, etterfulgt av en streng i anførselstegn (“ eller ’). Innenfor strengen kan du bruke krøllparenteser `{}` til å legge inn variabler og uttrykk.

```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 eksemplet setter vi variablene `name` og `age` i krøllparenteser i f-strengen`{name}` og `{age}`.

## Hvordan brukes Python f-strenger?

F-strenger kan brukes på mange forskjellige måter.

### Utføre beregninger innenfor en streng

Python f-strenger er spesielt praktiske hvis du vil utføre **aritmetiske beregninger** innenfor en streng. De lar deg definere et komplekst uttrykk 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 eksemplet blir `num1` og `num2` lagt til i f-strengen. Resultatet vises i den endelige strengutdataen.

### Python f-strenger og rå strenger

Kombinasjonen av `r` for rå strenger og `f` for f-strenger skaper en spesiell type streng i Python, kjent som en rf-streng. Med rf-strenger kan du kombinere funksjonaliteten til rå strenger med fleksibiliteten til f-strenger. R-strenger **tolker escape-sekvenser bokstavelig**, og f-strenger kan direkte innebygge variabler og uttrykk 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 koden ovenfor brukte vi en rf-streng for å definere en bane. Vi brukte `{name}` i rf-strengen for å sette inn variabelen `name` direkte. Samtidig sikrer `r` før strengen at **tilbakeslag** `\` behandles som et bokstavelig tegn og ikke som en del av en escape-sekvens.

### Nøyaktighet av flytende tall

Du kan bruke spesielle **formateringsuttrykk** for å angi antall desimaler i et flytende tall i en f-streng.

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

I koden ovenfor angir formateringsuttrykket `:.3f` at variabelen `value` skal avrundes til tre desimaler og settes inn i den formaterte strengen.

### Bredde og justering

I Python f-strenger kan du bruke bredde- og justeringsspesifikasjoner til å kontrollere hvordan **verdier vises** i et felt. Dette er nyttig for å plassere tekst og tall på et bestemt sted og justere dem til venstre, høyre eller midt.

La oss si at vi har navnet `__Alice__` og ønsker å høyreinnrette det i et felt som er 10 tegn bredt.

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

Siden verdien er mindre enn 10 tegn lang, vil `{name:>10}` justere den til høyre.

### Fylling med nuller eller andre tegn

Fylling med nuller eller andre tegn påvirker justeringen av tall i et felt. Dette er nyttig hvis du vil ha tall i et fast format, for eksempel når du **viser tider eller numeriske verdier**.

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

I dette eksemplet indikerer `:06` at tallet for `number` skal skrives inn i et sekssifret felt, og at eventuelle manglende sifre skal fylles ut med ledende nuller.

Du kan også bruke andre tegn enn nuller til å fylle 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/nb-no/digitalguide/nettsteder/webutvikling/python-f-strenger/](https://www.ionos.com/nb-no/digitalguide/nettsteder/webutvikling/python-f-strenger/) for AI/LLM consumption.