Найти в Дзене
SamAlex

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

Часто бывает нужно подставить в строку данные, полученные во время выполнения программы. Это может быть строка, введённая пользователем или какое‑то число, посчитанное программой. Такую подстановку можно сделать с помощью конкатенации. На практике это не очень удобно, если вы хотите вывести на экран не просто сумму, но и входные данные. Даже в такой простой программе уже можно запутаться: Если же это будет что‑то более сложное, строка превратится в не читаемую мешанину из кавычек, операторов и функций str. Чтобы сделать подстановки более читаемыми, в Python есть несколько различных способов. И первый из них — это %-форматирование. Как вы наверняка догадались, все встреченные %d будут заменены на значения переменных a, b и c. Символ % указывает на то, что в эту позицию строки нужно подставить значение очередной переменной, а символ после этого знака задает тип переменной. d — это целое число. Если типы не будут совпадать, программа завершится с ошибкой. Чтобы все сработало как надо, для
Оглавление

Часто бывает нужно подставить в строку данные, полученные во время выполнения программы. Это может быть строка, введённая пользователем или какое‑то число, посчитанное программой. Такую подстановку можно сделать с помощью конкатенации. На практике это не очень удобно, если вы хотите вывести на экран не просто сумму, но и входные данные. Даже в такой простой программе уже можно запутаться:

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

Если же это будет что‑то более сложное, строка превратится в не читаемую мешанину из кавычек, операторов и функций str. Чтобы сделать подстановки более читаемыми, в Python есть несколько различных способов. И первый из них — это %-форматирование.

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

Как вы наверняка догадались, все встреченные %d будут заменены на значения переменных a, b и c. Символ % указывает на то, что в эту позицию строки нужно подставить значение очередной переменной, а символ после этого знака задает тип переменной. d — это целое число. Если типы не будут совпадать, программа завершится с ошибкой.

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

Чтобы все сработало как надо, для строк нужно использовать символ s.

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

На самом деле возможностей у этого способа подстановки гораздо больше. Можно, например, задавать точность, с которой будет подставлено число. К тому же можно использовать другие типы данных.

Вообще этот способ считается устаревшим, поэтому сильно в него углубляться не будем. Просто знайте, что такой способ есть и его вполне можно встретить в чужом исходном коде. Мы же рассмотрим более предпочтительные способы форматирования строк.

Второй способ подстановки — с помощью метода строк format. Этот способ более современный и если есть выбор между %-форматированием и использованием метода format выбирайте метод format.

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

Метод строки format последовательно заменяет встреченные в строке символы {} на аргументы, с которыми он вызван. То есть первые встреченные {} он заменит на значение переменной a, вторые — на значение b, а третьи — на значение c.

Можно указать произвольный порядок подстановки аргументов, указав индекс внутри фигурных скобок.

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

Никаких ошибок с типами при использовании format не будет, все аргументы будут преобразованы автоматически.

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

Это самое простое применение метода форматирования строк.

Самый современный способ форматирования — это f-строки. Их использование улучшает читаемость кода и работают быстрее всех остальных способов форматирования. Для использования всех возможностей f-строк, достаточно поставить перед строкой символ «f». Оцените, насколько использование f-строк проще и читаемее, чем все остальные.

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

Мы сразу можем написать имена переменных внутри строки, не мучаясь с их передачей в строку через метод или %.

Кроме переменных, f-строки могут работать и с выражениями. То есть, вполне можно сделать так и это будет прекрасно работать.

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

Также в f-строках можно вызывать методы и функции.

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

Срезы, кстати, тоже будут работать.

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

Если нужно, чтобы в строке были символы фигурных скобок, достаточно просто поставить две открывающих или две закрывающих скобки подряд.

А на сегодня все!

Спасибо за внимание!

До новых встреч!

#Python #f-строка #функция format() #форматирование строк #оператор %