Искать
Вы превысили запрос на
0 знаков

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

Не пройден
0
0

Кратко

- В Python есть различные способы форматирования строк.

- Методы форматирования включают использование оператора %, метода format() или f-строк.

- Метод format() позволяет выводить результат столбцами и округлять числа с плавающей точкой.

- F-строки работают быстрее и удобнее, чем метод format().

- В f-строках можно указывать имена параметров и перечислять их в любом порядке.

- В Python есть особенность объединения литералов строк, которая делает код более читабельным.

Введение

В предыдущем уроке мы рассмотрели основные типы данных. Сейчас более подробно разберем работу со строками в Python.

Иногда возникают ситуации, когда в шаблон строки необходимо подставить различные данные. Да, это можно сделать, просто объединяя данные и строки, но мы рассмотрим другой способ. Существует несколько способов сделать это:

  • использовать оператор % - устаревший вариант;
  • метод format();
  • самый новый способ: f-строки.

Рассмотрим пример с использованием метода format() для форматирования строк:

Пример (python)
a = "IP: {}".format('192.168.0.1')
print(a) # => IP: 192.168.0.1 

Для обозначения места, куда будет вставлено значение, используется специальная последовательность символов {}. Одна пара фигурных скобок для одной подстановки. Значения, которые подставляются, могут быть разного типа, например:

Пример (python)
a = "List: {}".format([1, 2, 3])
print(a)        

При помощи метода format() можно выводить результат столбцами. Рассмотрим пример:

Пример (python)
a, b, c = 100, 300, 1000000
result = '{:>15} {:>15} {:>15}'.format(a, b, c)
print(result) 

Отвлечемся. Обратите внимание на первую строку. Эта строка будет эквивалентна, но более компактна этому коду:

Пример (python)
a = 100
b = 300
c = 1000000        

Поэтому в Python можно очень просто обменять значения двух переменных таким образом:

Пример (python)
d = 5
e = 10
d, e = e, d

print(d) # => 10
print(e) # => 5       

Вернемся к примеру вывода данных в столбцы одинаковой ширины. В этот раз мы указали ширину столбца в фигурных скобках {}. Символ > указывает на то, что выравнивание осуществляется по правому краю (< - по левому краю и ^ - выравнивание по центру). При помощи форматирования можно округлять числа с плавающей точкой:

Пример (python)
result = '{:.1f}'.format(0.1556)
result # => 0.2 

Чтобы конвертировать числа в двоичный формат, после ширины столбца указывается флаг b.

Пример (python)
result = '{:8b} {:8b} {:8b} {:8b}'.format(192, 168, 0, 1)
result # => 11000000 10101000        0        1 

Или, если необходимо заполнить пустые места нулями:

Пример (python)
result = '{:08b} {:08b} {:08b} {:08b}'.format(192, 168, 0, 1)
result # => 11000000 10101000 00000000 00000001 

Для большей наглядности, в шаблоне можно задавать имена параметров и перечислять их в любом порядке:

Пример (python)
result = '{ip}/{mask}'.format(mask = '24', ip = '192.168.1.1')
result # => 192.168.1.1/24 

Или просто указывать номер аргумента:

Пример (python)
result = '{1}/{0}'.format('24', '192.168.1.1')
result # => 192.168.1.1/24 

Остальные возможности форматирования строк при помощи метода format() можно посмотреть в документации.

Форматирование при помощи f-строк

Рассмотрим самый свежий (на момент написания урока) способ форматирования строк: использование f-строк.

F-строки работают быстрее и, чаще всего, их удобнее использовать. Она выглядит как обычная строка, но перед кавычкой стоит символ f. А в фигурных скобках указывается имя переменной, значение которой необходимо подставить:

Пример (python)
mask, ip = '24', '192.168.1.1'
result = f'{ip}/{mask}'
result # => 192.168.1.1/24 

Обратите внимание, переменные должны быть инициализированы до их использования в шаблоне, иначе будет ошибка. Кроме подстановки значений переменных в фигурных скобках можно указывать через двоеточие те же флаги, что и при использовании метода format():

Пример (python)
mask, ip = '24', '192.168.1.1'
result = f'{ip:>20}/{mask}' 

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

Объединение литералов строк

В Python есть интересная особенность: объединение литералов строк, например:

Пример (python)
str = 'Hello' 'world'
str # => Helloworld 

Или можно переносить на разные строки, но строки должны быть помещены в круглые скобки:

Пример (python)
str = ('Hello'
	   'world')
str # => Helloworld 

Когда мы дойдем до регулярных выражений в Python, вы поймете, какие удобства предоставляет эта особенность. Благодаря этому код будет более читабельным.

В этом уроке разобрались, как форматировать строки, чтобы повысить читаемость кода и познакомились с f-строками.

В следующем уроке продолжим изучение условной конструкции if, которой мы ранее меняли ход выполнения программы.

Тест

Две секундочки...

Похожие уроки Codebra

@codebra_official
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Типы данных в PythonЗнакомство с Python
Итоги раздела «Самые основы Python»Знакомство с Python
Обработка исключений (try/except) в PythonЗнакомство с Python
Первое знакомство с PythonЗнакомство с Python
Условная инструкция if-elif-else в PythonЗнакомство с Python
Введение в раздел «Структуры данных в Python»Знакомство с Python
Пользовательские функции в PHPКурс по PHP
Поиск хостов с помощью NmapРазведка и сканирование
Продолжаем написание классов в PythonЗнакомство с Python
Впервые на сайте Codebra?

Извините за это всплывающее окно, меня они тоже раздражают.

Образовательный ресурс codebra.ru полностью посвящен программированию и компьютерной безопасности. Все курсы и уроки находятся на главной странице. Ради интереса можете посмотреть на содержимое курсов по Пентесту Active Directory, Python, HTML и CSS, JavaScript, C++ и другие, размещенные на главной странице.

Если что-то не нашли, то воспользуйтесь поиском по сайту, который находится на главной странице в самом верху.

Удачи в обучении!

Закрыть окно