f-строки
Как собрать текст со значениями внутри и почему плюс для этого не годится.
Как
Буква f перед кавычками разрешает подставлять значения прямо в
строку, в фигурных скобках:
imya = "Пётр"
vozrast = 42
print(f"{imya}, {vozrast} года") # Пётр, 42 года
Внутри скобок может быть любое выражение: f"{cena * 2}",
f"{spisok[0]}", f"{len(gosti)}".
Почему не плюс
Склейка плюсом работает только со строками:
"Всего: " + 5 # ошибка: нельзя сложить строку и число
"Всего: " + str(5) # работает, но шумно
f"Всего: {5}" # то же самое, короче и без str
На двух-трёх кусках разница невелика. На пяти плюсы и str занимают
больше места, чем сам текст, и опечатку в пробелах уже не видно.
Что умеют скобки
После двоеточия задаётся вид значения.
f"{3.14159:.2f}" # 3.14 — два знака после запятой
f"{7:03d}" # 007 — три знака, дополнить нулями
f"{1234567:,}" # 1,234,567 — разделители разрядов
f"{0.85:.0%}" # 85% — проценты
Это пригодится везде, где нужен ровный столбик: номера, время, деньги.
Старые способы
В чужом коде встретятся два предыдущих:
"Привет, %s" % imya # самый старый
"Привет, {}".format(imya) # промежуточный
f"Привет, {imya}" # нынешний
Все три работают. Писать новое стоит третьим: в нём значение видно там, где оно окажется, а не в хвосте строки.