# Mitä ovat Pythonin f-merkkijonot?

Pythonin f-merkkijonojen avulla voit lisätä **monimutkaisia lausekkeita ja muuttujia** suoraan merkkijonoon ilman, että sinun tarvitsee suorittaa ylimääräisiä muunnoksia tai muotoiluja.

## Mitä Pythonin f-merkkijonot voivat tehdä?

Python f-merkkijonot ovat Python-merkkijonoformaatti, joka otettiin käyttöön Python 3.6:ssa. Niitä kutsutaan myös **muotoilluiksi merkkijonolitteraaleiksi**. F-merkkijonossa voit arvioida laskelmia aaltosulkeiden avulla. F-merkkijonot mahdollistavat kompaktimman merkintätavan kuin muut merkkijonoformaatit, kuten `str.format()` ja `+` ketjutus. Tämä johtaa lopulta selkeämpään ja tiiviimpään koodiin.

F-merkkijonot ovat erittäin joustavia ja niiden avulla voit lisätä erilaisia tietotyyppejä, kuten **kokonaislukuja, liukulukuja, luetteloita,** lausekkeita ja funktioita, ilman että niitä tarvitsee muuntaa tai lisätä erityistä muotoilua. Pythonin f-merkkijonot ovat yleensä nopeampia kuin muut merkkijonojen muotoilumenetelmät Pythonissa.

## Mikä on Pythonin f-merkkijonojen syntaksi?

Python-f-merkkijonon perusrakenne koostuu **etuliitteestä** `f` tai `F`, jota seuraa lainausmerkeissä (“ tai ’) oleva merkkijono. Merkkijonossa voit käyttää aaltosulkeita `{}` muuttujien ja lausekkeiden upottamiseen.

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

Tässä esimerkissä laitamme muuttujat `name` ja `age` aaltosulkeisiin f-merkkijonossa`{name}` ja `{age}`.

## Miten Pythonin f-merkkijonoja käytetään?

F-merkkijonoja voidaan käyttää monin eri tavoin.

### Laskelmien suorittaminen merkkijonossa

Pythonin f-merkkijonot ovat erityisen käytännöllisiä, jos haluat tehdä **aritmeettisia laskutoimituksia** merkkijonon sisällä. Niiden avulla voit määritellä monimutkaisen lausekkeen yhdellä koodirivillä.

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

Tässä esimerkissä `num1` ja `num2` lisätään f-merkkijonoon. Tulos näkyy lopullisessa merkkijonotuloksessa.

### Pythonin f-merkkijonot ja raakamerkkijonot

Yhdistämällä `r` raakamerkkijonoille ja `f` f-merkkijonoille luodaan Pythonissa erityinen merkkijono, joka tunnetaan nimellä rf-merkkijono. Rf-merkkijonoilla voit yhdistää raakamerkkijonojen toiminnallisuuden ja f-merkkijonojen joustavuuden. R-merkkijonot **tulkitsevat pakosekvenssit kirjaimellisesti**, ja f-merkkijonot voivat upottaa muuttujia ja lausekkeita suoraan merkkijonoon.

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

Yllä olevassa koodissa käytimme rf-merkkijonoa polun määrittelemiseen. Käytimme rf-merkkijonossa `{name}` muuttujan `name` suoraan lisäämiseksi. Merkkijonon edessä oleva luku `r` varmistaa, että **kauttaviiva** `\` käsitellään kirjaimellisena merkkinä eikä osana pako-sekvenssiä.

### Kelluvien lukujen tarkkuus

Voit käyttää erityisiä **muotoilulausekkeita** määrittämään desimaalien lukumäärän f-merkkijonossa olevassa liukuluvussa.

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

Yllä olevassa koodissa muotoilulauseke `:.3f` osoittaa, että muuttuja `value` tulee pyöristää kolmeen desimaaliin ja lisätä muotoiltuun merkkijonoon.

### Leveys ja kohdistus

Pythonin f-merkkijonoissa leveys- ja kohdistusmäärittelyjen avulla voit hallita **arvojen näyttötapaa** kentässä. Tämä on hyödyllistä, kun haluat sijoittaa tekstiä ja numeroita tiettyyn kohtaan ja kohdistaa ne vasemmalle, oikealle tai keskelle.

Oletetaan, että meillä on nimi `__Alice__` ja haluamme kohdistaa sen oikealle 10 merkin levyisessä kentässä.

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

Koska arvo on alle 10 merkkiä pitkä, `{name:>10}` kohdistaa sen oikealle.

### Täyttäminen nollilla tai muilla merkeillä

Nollien tai muiden merkkien lisääminen vaikuttaa kentän numeroiden kohdistukseen. Tämä on hyödyllistä, jos haluat numeroiden olevan kiinteässä muodossa, esimerkiksi kun **näytät aikoja tai numeerisia arvoja**.

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

Tässä esimerkissä `:06` tarkoittaa, että numero `number` syötetään kuusimerkkiseen kenttään ja puuttuvat merkit täytetään nollilla.

Voit käyttää myös muita merkkejä kuin nollia merkkijonon täyttämiseen:

```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/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/pythonin-f-merkkijonot/](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/pythonin-f-merkkijonot/) for AI/LLM consumption.