Python ma kilka sposobów na budowanie stringów z dynamicznymi wartościami. Nowoczesne, rekomendowane podejście to f-stringi (formatted string literals), wprowadzone w Python 3.6.
f-stringi — nowoczesny standard
name =
age =
msg =
Prefiks f pozwala osadzać wyrażenia bezpośrednio w {} — zwięźle, czytelnie i szybko. To preferowana metoda w nowoczesnym Pythonie.
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
Znakiem :spec po wartości kontrolujesz precyzję, dopełnienie, wyrównanie i formatowanie liczb — potężne narzędzie do czystego wyjścia.
f"{name=}" # "name='Ann'" — prints both the expression AND value
= jest przydatne do szybkiego debugowania — pokazuje nazwę zmiennej i jej wartość.
"{} 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() jest nadal częste w starszym kodzie; formatowanie % to dziedzictwo; surowe łączenie znaków jest odradzane (wielosłowne i wymaga ręcznej konwersji str()).
Formatowanie stringów jest potrzebne stale — budowanie wiadomości, logów, wyjścia, zapytań.
F-stringi to nowoczesny, czytelny i wydajny standard, a znajomość ich specyfikatorów formatowania (precyzja, dopełnienie, wyrównanie, separatory) pozwala na tworzenie czystego, profesjonalnego wyjścia bez gadatliwego kodu.
Rozpoznawanie starszych stylów .format() i % pomaga przy czytaniu istniejących baz kodu.
Umiejętne korzystanie z f-stringów to mała, ale wszechobecna część pisania jasnego, idiomatycznego Pythona.