10.1 format()
Нам часто приходится выводить много данных в консоль (на экран). Не мы первые с этим столкнулись — поэтому уже давно в Python появилась функция format(), которая позволяет объединять строки и выводить данные на экран проще и понятнее.
Функция format() используется для вставки значений в строку в определенных позициях. Синтаксис функции выглядит следующим образом:
"Шаблон строки от {} до {}".format(значение1, значение2,…)
Факт 1. Функция format() — это дочерняя функция строки, поэтому она вызывается у строки. Вместо того чтобы передавать строку в функцию, мы пишем строку, затем ставим точку, а затем вызываем функцию format() и уже в нее передаем ее параметры.
Факт 2. Функция format() заполняет строку-шаблон переданными значениями. Она преобразовывает переданные значения в строки (если там были числа, например) и вставляет их в места, обозначенные символами {}. Такое место для вставки значения называется placeholder.
Базовое использование:
welcome_message = "Привет, {}, добро пожаловать в {}!"
print(welcome_message.format("Анна", "наш магазин"))
Результат: "Привет, Анна, добро пожаловать в наш магазин!"
Форматирование чисел:
output = "Данные: {0:.2f} и {1:.2f}".format(3.1415926, 2.71828)
print(output)
Результат: "Данные: 3.14 и 2.72" — демонстрация ограничения вывода до двух десятичных знаков.
Использование ключевых слов:
output = "{name} работает на {company}"
print(output.format(name="Сергей", company="Google"))
Результат: "Сергей работает на Google"
Использование format() улучшает читаемость и поддерживаемость кода, позволяя легко изменять формат без необходимости редактирования всей строки.
10.2 f-нотация
Начиная с версии 3.6 в Python появился новый тип строк — f-строки, которые буквально означают «formatted string». Эти строки улучшают читаемость кода, а также работают быстрее, чем другие способы форматирования.
Чтобы использовать f-строки, перед строкой ставится буква "f" или "F". Выражения для вставки помещаются в фигурные скобки {}:
Пример:
force = "Темная Сторона"
message = f"Да пребудет с тобой {force}!"
print(message) # Выведет: Да пребудет с тобой Темная Сторона!
Важно! В фигурных скобочках можно указывать переменные, которые доступны в текущей области видимости (об этом позднее) и Python сам преобразует их в строку и вставляет в нужное место.
Пример:
age = 28
message = f"Мне {age} лет"
print(message) # Выведет: Мне 28 лет
Более того, в фигурных скобках можно использовать выражения с кучей переменных.
Пример:
birth_year = 1985
current_year = 2024
message = f"Мне {current_year - birth_year} лет"
print(message) # Выведет: Мне 39 лет
Под капотом это все конвертируется в вызов функции format(), но новый подход действительно удобнее.
Пользуйтесь в свое удовольствие.
10.3 Параметры sep и end
В Python функция print() предоставляет два полезных параметра — sep и end, которые позволяют управлять выводом данных. Эти параметры делают функцию print() более гибкой и могут быть использованы для форматирования вывода без необходимости использования дополнительных функций или сложных строковых операций.
Параметр sep определяет символ или строку, которая будет использоваться для разделения нескольких значений, переданных в print(). По умолчанию sep установлен как пробел. Это означает, что если вы передадите несколько аргументов в print(), они будут разделены пробелом.
А если вы хотите, чтобы данные были разделены не пробелом, а, например, запятой, то вам нужно в самом конце добавить параметр sep и сразу присвоить ему новую строку-разделитель.
Пример:
print("Hello", "world") # Вывод: Hello world
print("Hello", "world", sep=", ") # Вывод: Hello, world
Или можно, например, сделать так, чтобы каждое значение выводилось с новой строки. Тогда параметру sep нужно присвоить специальный символ перевода строки — он обозначается парой символов “\n”.
| Пример | Пояснение |
|---|---|
|
|
Параметр end определяет, что будет напечатано после всех переданных значений. Стандартное значение end — символ новой строки (\n), что означает перевод строки после выполнения print().
Изменяя end, можно управлять тем, как выводятся данные, например, для продолжения вывода на той же строке:
Пример:
print("Hello", end=" ")
print("world") # Вывод: Hello world
Использование sep и end может быть чрезвычайно полезным в сценариях, где требуется особое форматирование вывода, например, при создании таблиц, отчетов или при выводе данных в одну строку без автоматического переноса на новую.
Помимо упрощения кода и избавления от необходимости вручную добавлять разделители или управлять переносами строк, использование sep и end повышает читаемость и поддерживаемость кода.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ