Sõne vorming: f-string

Sõne sobivale formaadile viimiseks on Pythonis mitu võimalust. Lihtsamateks operatsioonideks nagu näiteks kahe sõne ühendamiseks võib kasutada + operaatorit, kuid keerulisemate operatsioonide jaoks tasub kasutada sobivat vormindamise tööriista. Esialgu toimus Pythonis (vanemas Python 2 versioonis) keerulisem vormindamine % operaatori abil, kuid nüüd on uueks vormindamise stiiliks .format() ja f-string. Tasub valida üks uuematest vormindamiste stiilidest ja keskenduda sellele, kuid teada võiks kõiki, sest teiste koodi lugedes võib leida teises stiilis sõne vormindamist.

Allpool on toodud lihtne näide erinevatest vorminguviisidest. Mõni on paindlikum kui teine, kuid igale variandile leiab teatud olukorras kasutust.

name = "Tim"

print("Hello " + name)  # Simple concatenation.
print(" ".join(("Hello", name)))  # Hacky method using .join.

print("Hello %s" % name)  # Using "%" style.
print("Hello {}".format(name))  # Using ".format()" style.
print(f"Hello {name}")  # Using "f-string" style.

# Output of all above: "Hello Tim".

Vorming uue f-string kujul töötab see üldjoontes täpselt samamoodi nagu .format(), kus peamiseks erinevuseks on see, et muutujaid saab sisestada otse sõnesse. See väldib koodi dubleerimist ja suurendab loetavust. Selle kasutamiseks tuleks enne veenduda, et on installeeritud piisavalt värske Pythoni versioon.

Vaata alljärgnevat videot sõne vormindamise kohta:

All on toodud näide, kuidas kasutada sõnes muutuja väärtusi, kasutades selleks f-string vormingut.

name = "Alice"
age = 31
print(f"Her name is {name} and she is {age} years old.")  # -> Her name is Alice and she is 31 years old.

languages = ["Python", "Java", "Javascript", "C#", "C++", "Swift"]
print(f"{languages[0]}, {languages[3]}")  # -> Python, C#

Näide, kuidas vormingut täpsustada avaldistega:

import math
width = 10
precision = 6

print(f"The value of tau is {(math.pi * 2):{width}.{precision}}")  # -> The value of tau is    6.28319

Näide nullidega täitmisest:

n = 5
print(f"{n:02}") # -> 05

a = 22
print(f"{a:05}")  # -> 00022

Joondamise määramiseks f-stringi asendusvälja {} sees saab kasutada peale koolonit : kolme komponenti:

[CHARACTER][DIRECTION][STRING_LENGTH]

  • märk (character): tähemärk, mida kasutatakse tühjuse täitmiseks, näiteks A. Kui jätta märkimata, kasutatakse vaikimisi tühikut.

  • joondamine (direction): kas vasakule (<), paremale (>), või keskele (^). Kui jätta märkimata, joondatakse tekst vaikimisi vasakule ja numbrilised väärtused paremale.

  • pikkus (string length): määrab, kui palju ruumi tuleks eraldada, näiteks 10 tähemärgi pikkust. Kui jätta märkimata, ei rakendata eelnevaid kahte ja spetsiaalset vormindamist ei toimu.

Näiteid joondamisest:

string = "hello"
number = 123

f"{string:10}"  # -> 'hello     '
f"{number:10}"  # -> '       123'

f"{string:-^30}"  # -> '------------hello-------------'
f"{string:_>30}"  # -> '_________________________hello'