0 знаков
8. Форматирование строк в Python
Кратко- В Python есть различные способы форматирования строк.
- Методы форматирования включают использование оператора
%
, методаformat()
или f-строк.- Метод
format()
позволяет выводить результат столбцами и округлять числа с плавающей точкой.- F-строки работают быстрее и удобнее, чем метод
format()
.- В f-строках можно указывать имена параметров и перечислять их в любом порядке.
- В Python есть особенность объединения литералов строк, которая делает код более читабельным.
Введение
В предыдущем уроке мы рассмотрели основные типы данных. Сейчас более подробно разберем работу со строками в Python.
Иногда возникают ситуации, когда в шаблон строки необходимо подставить различные данные. Да, это можно сделать, просто объединяя данные и строки, но мы рассмотрим другой способ. Существует несколько способов сделать это:
- использовать оператор
%
- устаревший вариант; - метод
format()
; - самый новый способ: f-строки.
Рассмотрим пример с использованием метода format()
для форматирования строк:
a = "IP: {}".format('192.168.0.1')
print(a) # => IP: 192.168.0.1
Для обозначения места, куда будет вставлено значение, используется специальная последовательность символов {}
. Одна пара фигурных скобок для одной подстановки. Значения, которые подставляются, могут быть разного типа, например:
a = "List: {}".format([1, 2, 3])
print(a)
При помощи метода format()
можно выводить результат столбцами. Рассмотрим пример:
a, b, c = 100, 300, 1000000
result = '{:>15} {:>15} {:>15}'.format(a, b, c)
print(result)
Отвлечемся. Обратите внимание на первую строку. Эта строка будет эквивалентна, но более компактна этому коду:
a = 100
b = 300
c = 1000000
Поэтому в Python можно очень просто обменять значения двух переменных таким образом:
d = 5
e = 10
d, e = e, d
print(d) # => 10
print(e) # => 5
Вернемся к примеру вывода данных в столбцы одинаковой ширины. В этот раз мы указали ширину столбца в фигурных скобках {}
. Символ >
указывает на то, что выравнивание осуществляется по правому краю (<
- по левому краю и ^
- выравнивание по центру). При помощи форматирования можно округлять числа с плавающей точкой:
result = '{:.1f}'.format(0.1556)
result # => 0.2
Чтобы конвертировать числа в двоичный формат, после ширины столбца указывается флаг b
.
result = '{:8b} {:8b} {:8b} {:8b}'.format(192, 168, 0, 1)
result # => 11000000 10101000 0 1
Или, если необходимо заполнить пустые места нулями:
result = '{:08b} {:08b} {:08b} {:08b}'.format(192, 168, 0, 1)
result # => 11000000 10101000 00000000 00000001
Для большей наглядности, в шаблоне можно задавать имена параметров и перечислять их в любом порядке:
result = '{ip}/{mask}'.format(mask = '24', ip = '192.168.1.1')
result # => 192.168.1.1/24
Или просто указывать номер аргумента:
result = '{1}/{0}'.format('24', '192.168.1.1')
result # => 192.168.1.1/24
Остальные возможности форматирования строк при помощи метода format()
можно посмотреть в документации.
Дополнительно[ссылка доступна авторизованным пользователям]
Форматирование при помощи f-строк
Рассмотрим самый свежий (на момент написания урока) способ форматирования строк: использование f-строк.
F-строки работают быстрее и, чаще всего, их удобнее использовать. Она выглядит как обычная строка, но перед кавычкой стоит символ f
. А в фигурных скобках указывается имя переменной, значение которой необходимо подставить:
mask, ip = '24', '192.168.1.1'
result = f'{ip}/{mask}'
result # => 192.168.1.1/24
Обратите внимание, переменные должны быть инициализированы до их использования в шаблоне, иначе будет ошибка. Кроме подстановки значений переменных в фигурных скобках можно указывать через двоеточие те же флаги, что и при использовании метода format()
:
mask, ip = '24', '192.168.1.1'
result = f'{ip:>20}/{mask}'
К сожалению, многие темы еще не были рассмотрены, поэтому в этом уроке не получилось раскрыть все возможности форматирования строк в Python. К этому вопросу мы еще вернемся в дальнейшем.
Объединение литералов строк
В Python есть интересная особенность: объединение литералов строк, например:
str = 'Hello' 'world'
str # => Helloworld
Или можно переносить на разные строки, но строки должны быть помещены в круглые скобки:
str = ('Hello'
'world')
str # => Helloworld
Когда мы дойдем до регулярных выражений в Python, вы поймете, какие удобства предоставляет эта особенность. Благодаря этому код будет более читабельным.
В этом уроке разобрались, как форматировать строки, чтобы повысить читаемость кода и познакомились с f-строками.
В следующем уроке продолжим изучение условной конструкции if
, которой мы ранее меняли ход выполнения программы.
Тест
Похожие уроки Codebra
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ