Python nabízí několik způsobů, jak vytvářet řetězce s dynamickými hodnotami. Moderní a doporučovaný přístup je f-string (formatted string literal), který byl představen v Pythonu 3.6.
f-strings — moderní standard
name =
age =
msg =
Předpona f umožňuje vkládat výrazy přímo do {} — stručné, čitelné a rychlé. Toto je preferovaná metoda v moderním 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 po hodnotě řídí přesnost, odsazení, zarovnání a formátování čísel — výkonné pro čistý výstup.
f"{name=}" # "name='Ann'" — prints both the expression AND value
= je užitečné pro rychlé ladění — zobrazuje název proměnné a její hodnotu.
"{} 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 stále běžná ve starším kódu; %-formátování je zastaralé; surové spojování je nedoporučeno (verbose a vyžaduje ruční konverzi str()).
Formátování řetězců je neustále potřebné — vytváření zpráv, logů, výstupu, dotazů.
F-strings jsou moderní, čitelný a účinný standard, a znalost jejich specifikátorů formátu (přesnost, odsazení, zarovnání, oddělovače) vám umožní vytvářet čisté, profesionální výstupy bez verbose kódu.
Poznávání starších stylů .format() a % pomáhá při čtení existujících kódů.
Dobrá práce s f-strings je malá, ale všudypřítomná součást psaní jasného, idiomatického Pythonu.