Python ima nekoliko načina za izgradnju stringova s dinamičkim vrijednostima. Moderni, preporučeni pristup je f-string (korisničko oblikovano stringovno doslovno), uведen u Pythonu 3.6.
f-stringovi — moderni standard
name =
age =
msg =
Prefiks f omogućuje vam da direktno ugradite izraze u {} — sucinjan, čitljiv i brz. Ovo je preferirana metoda u modernom Pythonu.
f"{3.14159:.2f}" # "3.14" — 2 decimal places
f"{1000000:,}" # "1,000,000" — thousands separator
f"{0.85:.1%}" # "85.0%" — percentage
f"{42:05d}" # "00042" — pad with zeros to width 5
f"{'hi':>10}" # " hi" — right-align in width 10
f"{'hi':^10}" # " hi " — center
:spec nakon vrijednosti kontrolira preciznost, razmake, poravnanje i formatiranje brojeva — moćno za čist izlaz.
f"{name=}" # "name='Ann'" — prints both the expression AND value
= je praktičan za brzo debugiranje — prikazuje naziv varijable i njezinu vrijednost.
"{} is {}".format(name, age) # str.format() — pre-f-string standard
"%s is %d" % (name, age) # %-formatting — old C-style (avoid in new code)
name + " is " + str(age) # concatenation — verbose, error-prone
.format() je i dalje čest u starijemu kodu; %-formatiranje je naslijeđe; surova spajanja je odsječi (opširna i zahtijeva ručnu str() konverziju).
Formatiranje stringova potrebno je stalno — izgradnja poruka, dnevnika, izlaza, upita.
F-stringovi su moderni, čitljivi i učinkoviti standard, a poznavanje njihovih format specifikatora (preciznost, razmaci, poravnanje, odjeljivači) omogućuje vam da proizvede čist, profesionalan izlaz bez opširnoga koda.
Prepoznavanje starijih .format() i % stilova pomaže pri čitanju postojećih baza koda.
Dobra upotreba f-stringova mali je ali sveprisutan dio pisanja jasnog, idiomatskog Pythona.