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
повышает читаемость и поддерживаемость кода.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ