Python славится своими возможностями обработки текста благодаря мощному инструментарию для работы со строками. Одной из самых популярных и универсальных функций в этом плане является метод
.format()
. Сегодня мы поговорим о нём подробнее, начиная с базовых примеров и заканчивая хитрыми трюками, позволяющими добиться максимальной эффективности при выводе строк.Базовая работа метода .format()
Метод .format() позволяет вставлять значения переменных внутрь строки, используя фигурные скобки { } в качестве заполнителей.
name = 'Иван'
age = 30
print('Меня зовут {0}, мне {1} лет'.format(name, age))
Результат вывода:
Меня зовут Иван, мне 30 лет
Здесь цифры (0, 1) указывают порядковый индекс аргумента, который передается в метод .format(). Этот способ удобен и прост, однако существует ряд полезных расширений.
Автоматическое упорядочивание значений
Иногда нам необязательно указывать индексы, достаточно передать аргументы в нужном порядке:
print('Имя: {}, Возраст: {}'.format('Анна', 25))
Результат:
Имя: Анна, Возраст: 25
Однако иногда удобнее именованные параметры, чтобы избежать путаницы:
print('Имя: {name}, Возраст: {age}'.format(name='Сергей', age=35))
Результат:
Имя: Сергей, Возраст: 35
Форматирование чисел
Форматировать числа тоже можно изящно с помощью .format(). Например, отображаем число с фиксированным количеством знаков после запятой:
price = 19.99
print('Цена товара: {:.2f} руб.'.format(price)) # Отображаем ровно две десятичных цифры
Результат:
Цена товара: 19.99 руб.
Можно также управлять выравниванием и длиной полей:
for num in range(1, 11):
print('{num:02d}'.format(num=num)) # Заполняем пробелы нулями слева
Результат:
01
02
...
10
02
...
10
Продвинутые возможности: форматирование дат
Используя специальные символы формата, можно выводить даты разными способами:
from datetime import datetime
now = datetime.now()
print(now.strftime('%Y-%m-%d %H:%M')) # Классический формат даты-времени
print('Сегодня: {:%A, %d %B %Y}'.format(now)) # Полный формат с днем недели и месяцем прописью
Результат:
2023-10-10 15:30
Сегодня: Tuesday, 10 October 2023
Сегодня: Tuesday, 10 October 2023
Вложенный вызов .format()
Метод .format() допускает вложенность, позволяя формировать сложные выражения динамически:
data = {'title': 'Новый Год'}
message = '{event}: {countdown} дней до праздника!'
final_message = message.format(event=data['title'], countdown=30)
print(final_message)
Результат:
Новый Год: 30 дней до праздника!
Метод .format() открывает широкие возможности для эффективного и красивого форматирования строк в Python. Даже опытные разработчики часто находят для себя новые приемы, открывающие скрытые возможности этой простой, но невероятно мощной функции. Экспериментируйте и наслаждайтесь возможностями Python для обработки строк!
Справочник Python