Посмотреть все уроки курса
Выбрать другой урок из курса
Поиск по сайту
Теория урока

8. Форматирование строк в 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-строками.

Похожие уроки и записи блога

Первое знакомство с PythonЗнакомство с Python
Типы данных в PythonЗнакомство с Python
Продолжаем написание классов в PythonЗнакомство с Python
Обработка исключений (try/except) в PythonЗнакомство с Python
Погружение в PythonЗнакомство с Python
Функциональное программирование: map, filter и reduceЗнакомство с Python
Написание модулей в PythonЗнакомство с Python
Условная инструкция if-elif-else в PythonЗнакомство с Python
Структуры данных в PythonЗнакомство с Python
<
×
>
Раздел «Знакомство с Python»
1. УРОК: Первое знакомство с Python
2. ТЕСТ: Небольшой первый тест по Python
3. УРОК: Переменные и комментарии в Python
4. ТЕСТ: Тест по основным понятиям и работе с сайтом
Самые основы
5. УРОК: Погружение в Python
6. ТЕСТ: Второй вводный тест по Python
7. УРОК: Типы данных в Python
УРОК 8. Форматирование строк в Python
Вы здесь
9. УРОК: Условная инструкция if-elif-else в Python
10. УРОК: Преобразование и проверка типов в Python
11. УРОК: Вызов методов цепочкой в Python
Циклы
12. УРОК: Первое знакомство с циклами в Python
13. ТЕСТ: Тест по циклам Python
Немного рандома
14. УРОК: Генерируем случайные числа на Python
15. ТЕСТ: Тест по модулю random Python
Структуры данных
16. УРОК: Структуры данных в Python
17. ТЕСТ: Тест по структурам Python
Списки
18. УРОК: Списки в Python
19. ТЕСТ: Тест по спискам Python
20. УРОК: Изменение списка на месте в Python
21. УРОК: Дополнительно про списки в Python
22. УРОК: Конкатенация и сортировка списков в Python
23. ТЕСТ: Заключительный тест по спискам в Python
Словари
24. УРОК: Словари в Python
25. ТЕСТ: Тест по словарям Python
26. УРОК: Словари и списки: еще глубже
27. УРОК: Перебор элементов словаря в Python
28. УРОК: Внутреннее устройство и сортировка словаря в Python
29. УРОК: Методы словарей и функция len() в Python
30. ТЕСТ: Заключительный тест по словарям
Множества
31. УРОК: Множества в Python
32. УРОК: Методы и особенности множеств в Python
33. УРОК: Отношения между множествами и операции над ними
34. ТЕСТ: Тест по методам множеств в Python
35. ТЕСТ: Тест по операциям над множествами в Python
Кортежи
36. УРОК: Кортежи в Python
37. УРОК: Более подробно о кортежах в Python
38. ТЕСТ: Тест по кортежам в Python
Снова циклы и немного исключений
39. УРОК: Контроль хода выполнения программы в Python
40. УРОК: Цикл while в Python
41. УРОК: Операторы break, continue и pass в Python
42. УРОК: Циклы for/else и while/else в Python
43. УРОК: Обработка исключений (try/except) в Python
44. ТЕСТ: Тест по циклам и управляющим конструкциям
45. ТЕСТ: Тест по обработке исключений
Работаем с файлами
46. УРОК: Работа с файлами в Python
47. УРОК: Оператор with/as для работы с файлами в Python
48. ТЕСТ: Тест по работе с файлами в Python
Итераторы
49. УРОК: Итераторы в Python
50. УРОК: List/dict/set comprehensions (включения) в Python
51. ТЕСТ: Тест по включениям в Python
Функции
52. УРОК: Основы функций в Python
53. ТЕСТ: Тест по основам функций в Python
54. УРОК: Область видимости в Python
55. ТЕСТ: Тест по области видимости в Python
56. УРОК: Замыкания и оператор nonlocal в Python
57. ТЕСТ: Тест по замыканиям и nonlocal в Python
58. УРОК: Аргументы и параметры функций, операторы * и ** в Python
59. ТЕСТ: Тест по аргументам и параметрам функций в Python
60. ТЕСТ: Тест по операторам * и ** в Python
61. УРОК: Анонимные функции: выражения lambda
62. УРОК: Функциональное программирование: map, filter и reduce
63. ТЕСТ: Тест по парадигме функционального программирования
64. УРОК: Генераторы и оператор yield в Python
65. ТЕСТ: Тест по генераторным функциям и выражениям
Модули
66. УРОК: Модули в Python
67. УРОК: Написание модулей в Python
68. УРОК: Пакеты модулей в Python
69. УРОК: Еще о возможностях модулей в Python
70. ТЕСТ: Тест по модулям и пакетам в Python
Объектно-ориентированное программирование
71. УРОК: Основы объектно-ориентированного программирования (ООП) в Python
72. ТЕСТ: Тест по основам ООП в Python
73. УРОК: Основы написания классов в Python
74. УРОК: Продолжаем написание классов в Python
75. УРОК: Более глубокое изучение классов в Python
76. УРОК: Что дальше?
Впервые на сайте Codebra?

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

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

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

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

Закрыть окно