В Python есть несколько способов создания строк с динамическими значениями. Современный, рекомендуемый подход — это f-строки (formatted string literals), представленные в Python 3.6.
f-строки — современный стандарт
name =
age =
msg =
Префикс f позволяет встраивать выражения прямо в {} — лаконично, читаемо и быстро. Это предпочтительный метод в современном Python.
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 после значения управляет точностью, заполнением, выравниванием и форматированием чисел — мощный инструмент для чистого вывода.
f"{name=}" # "name='Ann'" — prints both the expression AND value
= удобен для быстрой отладки — показывает имя переменной и её значение.
"{} 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() всё ещё распространён в старом коде; форматирование % — это наследие; прямое объединение не рекомендуется (многословно и требует ручного преобразования str()).
Форматирование строк требуется постоянно — построение сообщений, логов, вывода, запросов.
F-строки — это современный, читаемый и эффективный стандарт, и знание их спецификаторов формата (точность, заполнение, выравнивание, разделители) позволяет создавать чистый, профессиональный вывод без многословного кода.
Распознавание старых стилей .format() и % помогает при чтении существующих кодовых баз.
Хорошее использование f-строк — это небольшая, но повсеместная часть написания ясного, идиоматичного Python.