Форматирование строк

Форматирование строк в Python позволяет вставлять значения переменных или результатов выражений в строки.
Это делает код более читаемым и удобным для работы с текстовыми данными.

В Python есть несколько способов форматирования строк, среди которых наиболее популярными являются f-строки (начиная с Python 3.6) и метод .format().


F-строки (f-strings)

F-строки — это современный и удобный способ форматирования строк, который появился в Python 3.6. Они позволяют вставлять значения переменных или выражений прямо в строку, используя фигурные скобки {}.

Синтаксис:
f"Текст {переменная} текст"
Примеры:
name = "Alice" age = 25 # Вставка переменных text = f"Меня зовут {name} и мне {age} лет." print(text) # Меня зовут Alice и мне 25 лет. # Вставка выражений text = f"Через 5 лет мне будет {age + 5} лет." print(text) # Через 5 лет мне будет 30 лет. # Форматирование чисел pi = 3.1415926535 text = f"Число π с точностью до 2 знаков: {pi:.2f}" print(text) # Число π с точностью до 2 знаков: 3.14
Преимущества f-строк:
  • Простота и читаемость.
  • Возможность вставлять выражения прямо в строку.
  • Высокая производительность (быстрее, чем .format() или %-форматирование).

Метод .format()

Метод .format() — это более старый, но всё ещё популярный способ форматирования строк. Он позволяет подставлять значения в строку, используя фигурные скобки {} и метод .format().

Синтаксис:
"Текст {} текст {}".format(значение1, значение2)
Примеры:
name = "Bob" age = 30 # Простая вставка text = "Меня зовут {} и мне {} лет.".format(name, age) print(text) # Меня зовут Bob и мне 30 лет. # Указание порядка аргументов text = "Мне {1} лет, а зовут меня {0}.".format(name, age) print(text) # Мне 30 лет, а зовут меня Bob. # Именованные аргументы text = "Имя: {name}, Возраст: {age}".format(name=name, age=age) print(text) # Имя: Bob, Возраст: 30 # Форматирование чисел pi = 3.1415926535 text = "Число π с точностью до 3 знаков: {0:.3f}".format(pi) print(text) # Число π с точностью до 3 знаков: 3.142
Преимущества .format():
  • Гибкость (можно указывать порядок аргументов или использовать именованные аргументы).
  • Поддержка в старых версиях Python (до 3.6).

Сравнение f-строк и .format()

Характеристика F-строки .format()
Читаемость Высокая Средняя
Производительность Высокая Ниже, чем у f-строк
Поддержка выражений Да (внутри {}) Нет (только переменные)
Совместимость Python 3.6+ Все версии Python
Форматирование чисел Да (например, {pi:.2f}) Да (например, {0:.2f})

Примеры использования

Пример 1: Форматирование таблицы
# Используем f-строки name = "Alice" age = 25 height = 1.68 table = f""" Имя: {name} Возраст: {age} Рост: {height:.2f} м """ print(table)
Пример 2: Форматирование с использованием .format()
# Используем .format() product = "Яблоко" price = 45.50 quantity = 3 text = "Товар: {0}, Цена: {1:.2f} руб., Количество: {2}".format(product, price, quantity) print(text) # Товар: Яблоко, Цена: 45.50 руб., Количество: 3
Пример 3: Комбинирование f-строк и .format()
# Используем f-строку для создания шаблона template = f"Привет, {{name}}! Твой баланс: {{balance:.2f}} руб." # Используем .format() для подстановки значений message = template.format(name="Alice", balance=1234.5678) print(message) # Привет, Alice! Твой баланс: 1234.57 руб.

Когда что использовать?

  • F-строки — предпочтительный способ в Python 3.6 и выше. Они проще, читабельнее и быстрее.

  • .format() — полезен, если нужно поддерживать старые версии Python (до 3.6) или если требуется более сложное форматирование с использованием именованных аргументов.


Дополнительные возможности форматирования

  • Выравнивание текста:
    text = f"{'left':<10} {'center':^10} {'right':>10}" print(text) # left center right
  • Форматирование чисел:
    number = 1234567890 text = f"Число с разделителями: {number:,}" print(text) # Число с разделителями: 1,234,567,890
  • Форматирование дат:
    from datetime import datetime today = datetime.now() text = f"Сегодня: {today:%d.%m.%Y}" print(text) # Сегодня: 25.10.2023

Форматирование строк — мощный инструмент, который делает код более выразительным и удобным для работы с текстовыми данными. Выбор между f-строками и .format() зависит от версии Python и конкретных требований задачи.


Комментарии

Добавить комментарий

Чтобы оставить комменатрий необходимо Авторизоваться