Pythonin f-merk­ki­jo­no­jen avulla voit lisätä mo­ni­mut­kai­sia lausek­kei­ta ja muuttujia suoraan merk­ki­jo­noon ilman, että sinun tarvitsee suorittaa yli­mää­räi­siä muun­nok­sia tai muo­toi­lu­ja.

Mitä Pythonin f-merk­ki­jo­not voivat tehdä?

Python f-merk­ki­jo­not ovat Python-merk­ki­jo­no­for­maat­ti, joka otettiin käyttöön Python 3.6:ssa. Niitä kutsutaan myös muo­toil­luik­si merk­ki­jo­no­lit­te­raa­leik­si. F-merk­ki­jo­nos­sa voit arvioida laskelmia aal­to­sul­kei­den avulla. F-merk­ki­jo­not mah­dol­lis­ta­vat kom­pak­tim­man mer­kin­tä­ta­van kuin muut merk­ki­jo­no­for­maa­tit, kuten str.format() ja + ketjutus. Tämä johtaa lopulta sel­keäm­pään ja tii­viim­pään koodiin.

F-merk­ki­jo­not ovat erittäin joustavia ja niiden avulla voit lisätä erilaisia tie­to­tyyp­pe­jä, kuten ko­ko­nais­lu­ku­ja, liu­ku­lu­ku­ja, luet­te­loi­ta, lausek­kei­ta ja funk­tioi­ta, ilman että niitä tarvitsee muuntaa tai lisätä erityistä muotoilua. Pythonin f-merk­ki­jo­not ovat yleensä nopeampia kuin muut merk­ki­jo­no­jen muo­toi­lu­me­ne­tel­mät Pyt­ho­nis­sa.

Mikä on Pythonin f-merk­ki­jo­no­jen syntaksi?

Python-f-merk­ki­jo­non pe­rus­ra­ken­ne koostuu etu­liit­tees­tä f tai F, jota seuraa lai­naus­mer­keis­sä (“ tai ’) oleva merk­ki­jo­no. Merk­ki­jo­nos­sa voit käyttää aal­to­sul­kei­ta {} muut­tu­jien ja lausek­kei­den upot­ta­mi­seen.

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

Tässä esi­mer­kis­sä laitamme muuttujat name ja age aal­to­sul­kei­siin f-merk­ki­jo­nos­sa{name} ja {age}.

Miten Pythonin f-merk­ki­jo­no­ja käytetään?

F-merk­ki­jo­no­ja voidaan käyttää monin eri tavoin.

Las­kel­mien suo­rit­ta­mi­nen merk­ki­jo­nos­sa

Pythonin f-merk­ki­jo­not ovat erityisen käy­tän­nöl­li­siä, jos haluat tehdä arit­meet­ti­sia las­ku­toi­mi­tuk­sia merk­ki­jo­non sisällä. Niiden avulla voit mää­ri­tel­lä mo­ni­mut­kai­sen lausek­keen yhdellä koo­di­ri­vil­lä.

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

Tässä esi­mer­kis­sä num1 ja num2 lisätään f-merk­ki­jo­noon. Tulos näkyy lo­pul­li­ses­sa merk­ki­jo­no­tu­lok­ses­sa.

Pythonin f-merk­ki­jo­not ja raa­ka­merk­ki­jo­not

Yh­dis­tä­mäl­lä r raa­ka­merk­ki­jo­noil­le ja f f-merk­ki­jo­noil­le luodaan Pyt­ho­nis­sa erityinen merk­ki­jo­no, joka tunnetaan nimellä rf-merk­ki­jo­no. Rf-merk­ki­jo­noil­la voit yhdistää raa­ka­merk­ki­jo­no­jen toi­min­nal­li­suu­den ja f-merk­ki­jo­no­jen jous­ta­vuu­den. R-merk­ki­jo­not tul­kit­se­vat pa­ko­se­kvens­sit kir­jai­mel­li­ses­ti, ja f-merk­ki­jo­not voivat upottaa muuttujia ja lausek­kei­ta suoraan merk­ki­jo­noon.

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

Yllä olevassa koodissa käytimme rf-merk­ki­jo­noa polun mää­rit­te­le­mi­seen. Käytimme rf-merk­ki­jo­nos­sa {name} muuttujan name suoraan li­sää­mi­sek­si. Merk­ki­jo­non edessä oleva luku r varmistaa, että kaut­ta­vii­va \ kä­si­tel­lään kir­jai­mel­li­se­na merkkinä eikä osana pako-se­kvens­siä.

Kelluvien lukujen tarkkuus

Voit käyttää erityisiä muo­toi­lu­lausek­kei­ta mää­rit­tä­mään de­si­maa­lien lu­ku­mää­rän f-merk­ki­jo­nos­sa olevassa liu­ku­lu­vus­sa.

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

Yllä olevassa koodissa muo­toi­lu­lause­ke :.3f osoittaa, että muuttuja value tulee pyöristää kolmeen de­si­maa­liin ja lisätä muo­toil­tuun merk­ki­jo­noon.

Leveys ja kohdistus

Pythonin f-merk­ki­jo­nois­sa leveys- ja koh­dis­tus­mää­rit­te­ly­jen avulla voit hallita arvojen näyt­tö­ta­paa kentässä. Tämä on hyö­dyl­lis­tä, kun haluat sijoittaa tekstiä ja numeroita tiettyyn kohtaan ja kohdistaa ne va­sem­mal­le, oikealle tai keskelle.

Oletetaan, että meillä on nimi __Alice__ ja haluamme kohdistaa sen oikealle 10 merkin le­vyi­ses­sä kentässä.

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

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

Täyt­tä­mi­nen nollilla tai muilla merkeillä

Nollien tai muiden merkkien li­sää­mi­nen vaikuttaa kentän nu­me­roi­den koh­dis­tuk­seen. Tämä on hyö­dyl­lis­tä, jos haluat nu­me­roi­den olevan kiin­teäs­sä muodossa, esi­mer­kik­si kun näytät aikoja tai nu­mee­ri­sia arvoja.

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

Tässä esi­mer­kis­sä :06 tar­koit­taa, että numero number syötetään kuusi­merk­ki­seen kenttään ja puuttuvat merkit täytetään nollilla.

Voit käyttää myös muita merkkejä kuin nollia merk­ki­jo­non täyt­tä­mi­seen:

word = "Python"
formatted_word = f"Word: {word:_<10}"
print(formatted_word) # Output: Word: Python____
python
Siirry pää­va­lik­koon