Форматирование строк в Python
Очень часто, вывод программы представляет из себя некую строку, в которой содержатся данные из вашей программы. Здесь мы рассмотрим способы форматирования строк, то есть подстановки ваших переменных в строки в языке программирования Python.
C-форматирование
Наверное все, кто программировал на языке C или C++ знают о такой функции, как printf, которая выводит строку, подставляя туда переменные в нужном формате. Чтобы понять о чём я говорю, рассмотрим примеры:
printf("Целое число %d", 5); printf("Дробное число %f", 2.1); printf("Строка %s", "какая-то строка");
Для каждого типа данных есть собственная последовательность + есть всякие модификаторы. Побольше о них можно узнать например здесь. Для того, чтобы таким образом отформатировать строку, используется следующий синтаксис:
<строка с параметрами>%(<переменные для подстановки>)
Например:
print("%d %f %s"%(1, 2.5, "string")) # Вывод: 1 2.500000 string
Можно записать строку в переменную и потом подставить параметры:
pattern = "%d %f %s" print(pattern%(2, 3.3, "abc")) # Вывод: 2 3.300000 abc
Этот способ хорош тем, что можно очень гибко настраивать параметры вывода при помощи модификаторов. Например вот так можно вывести число с точностью 3 знака после запятой:
print("%.3f"%(2.12345))
Метод format
У строк есть специальный метод format, который выполняет ту же задачу, но немного элегантнее. Он ищет в строке фигурные скобки и подставляет вместо них аргумент. В фигурных скобках можно указать номер аргумента(нумеруются с 0), а можно ничего не указывать и format подставит аргументы по порядку.
Пример:
pattern = "{}:{}:{}" print(pattern.format(1, 2, 3)) # 1 2 3 another_pattern = "{2}:{1}:{0}" print(another_pattern.format(1, 2, 3)) # 3 2 1
Этот способ хорош тем, что ему не важен тип аргумента, лишь их порядок.
f-строки
С версии 3.6 существует ещё один способ форматирования. Он очень удобен, однако не без недостатков: подставляет аргументы в строку сразу при объявлении. Рассмотрим пример:
a = 3 b = 2 print(f"{a*b} {a+b} {3*3}") # 6 5 9
Перед строкой ставится префикс f, который обозначает f-строку.Внутри могут быть любые выражения в фигурных скобках: они вычисляются сразу же.
Какой из этих способов использовать зависит от вас и от ситуации. В любом случае, один из них точно подойдёт. А эта статья подошла к концу, до встреч в группе SnakeBlog.