1. Введение
В этой статье мы представляем исчерпывающую статью о строках форматирования Python . Одной из задач, с которыми мы сталкиваемся почти каждый день при написании кода для наших изменяющих мир приложений, является форматирование строк. Хотя это звучит как тривиальная задача, необходимо правильно отформатировать строки, потому что не выполнение этого может также привести к большим утечкам памяти. Эти утечки памяти происходят из-за дополнительных объектов String, сделанных из-за нашего неправильного форматирования сообщений String.
В этом коротком уроке мы увидим, как мы можем отформатировать строки в Python, как мы можем приспособить различные типы данных и избежать общих утечек памяти. Мы также рассмотрим одну из самых популярных библиотек форматирования String, которая может использоваться в производственных приложениях со встроенными оптимизациями для этой задачи, чтобы вам не пришлось беспокоиться ни о чем, кроме вашей бизнес-логики (в основном).
2. Строки форматирования Python
В этом разделе давайте рассмотрим различные примеры того, как мы можем форматировать строки и как можно управлять различными типами данных внутри строки для красивого сообщения, которое мы намереваемся показать на экране.
2.1 Простое форматирование строки
Мы начнем с очень простого примера, где мы будем форматировать одну строку внутри оператора печати Python. Чтобы указать местозаполнители в строках, мы обычно используем символ%, чтобы указать, что что-то здесь необходимо заменить. Вот простой фрагмент кода, который предоставляет тот же пример:
1
|
print( '%s %s' % ( 'one' , 'two' )) |
Как показано выше, два символа «%» указывают на наличие двух заполнителей, ожидающих замены в строке. Следующие скобки предоставляют два объекта String, которые действуют как объекты, заменяющие заполнители. Мы поместим вышеуказанную команду в файл Python и просто запустим ее в командной строке. Вот как мы это делаем:
Мы только что проверили нашу версию Python, чтобы не было путаницы в используемой версии Python, потому что есть разница в том, как строки форматируются в более старой версии Python, что мы не будем рассматривать в этом уроке. Обычно это один из самых простых и простых способов форматирования строк. На самом деле, не только строки, мы можем форматировать списки одинаково:
1
2
|
my_list = [1, 2, 3] print( 'List is: %s' % my_list) |
Мы поместим вышеуказанную команду в файл Python и просто запустим ее в командной строке. Вот как мы это делаем:
2.2 Форматирование числовых значений
Форматирование числовых значений очень похоже на форматирование строк. Здесь мы рассмотрим два примера, первый будет очень похож на предыдущий пример, который мы видели. Второй будет отражать новые конвенции существ, используемых сейчас. Вот как мы это делаем:
1
|
print( '%d %d' % (45, 57))<br>print( '{} {}' . format (45, 57)) |
В приведенном выше коде мы использовали немного другой заполнитель, чем для строковых значений. Во второй строке кода мы использовали простую функцию Python для форматирования переданных значений в местах круглых скобок. Давайте запустим приведенный выше код сейчас:
Есть два способа, которыми мы отформатировали числовые значения выше. Обратите внимание, что «% d» будет работать только с целочисленными значениями, а не со значениями с десятичными знаками. Давайте посмотрим, как форматировать значения с плавающей запятой в Python:
1
|
print( '%.2f %.2f' % (45.22, 57.32))<br>print( '{} {}' . format (45.22, 57.32)) |
В приведенном выше фрагменте кода основным заполнителем является «% f», а цифра перед этим просто сообщает Python о сохранении двух десятичных значений в числовом значении, передаваемом в качестве аргументов. Вот результат, который мы получим, когда запустим приведенный выше фрагмент кода:
Следует отметить, что второй пример, в котором мы использовали фигурные скобки, остается неизменным независимо от того, какой тип данных форматируется. Таким образом, использование фигурных скобок является одним из самых безопасных параметров при форматировании значений.
2.3 Заполнение и выравнивание строк
По умолчанию отформатированные строки занимают только место, которого достаточно для предоставленных значений, но иногда нам необходимо добавить выравнивание или пробелы до или после значений. Выравнивание по умолчанию отличается старым и новым стилем форматирования. Старый стиль по умолчанию выровнен по правому краю, а для нового стиля он оставлен. Вот пример фрагмента кода для выравнивания строки справа:
1
|
print( '%5s' % ( 'JCG' ))<br>print( '{:>5}' . format ( 'JCG' )) |
Вот результат, который мы получим, когда запустим приведенный выше фрагмент кода:
Очень похожим образом приведен пример фрагмента кода для выравнивания строки слева:
1
2
|
print( '%-5s' % ( 'JCG' )) print( '{:<5}' . format ( 'JCG' )) |
Вот результат, который мы получим, когда запустим приведенный выше фрагмент кода:
В приведенном выше выводе мы показываем, как пробелы добавляются в конце строки, а в предыдущем примере он добавлялся в начале строки.
2.4 Форматирование чисел с символом
В Python только отрицательные числа показаны с символом дефиса, а положительные числа показаны без намерения. Ну, это можно изменить с помощью техники форматирования. Давайте попробуем простой фрагмент кода для того же:
1
|
print( '{:+d}' . format (23)) |
Вот результат, который мы получим, когда запустим приведенный выше фрагмент кода:
2.5 Именованные заполнители
Так же, как мы показали в первом разделе, где заполнители были очень простыми, с заполнителями может быть очень трудно управлять, когда размер текста начинает расти. Чтобы избежать путаницы, мы можем использовать простой словарь Python для управления заполнителями в качестве ключей и исходным текстом в качестве значений. Давайте попробуем простой фрагмент кода для того же:
1
|
language = { 'one' : 'Java' , 'two' : 'Python' , 'three' : 'Kotlin' } |
Далее мы поместим этот словарь Python для использования в операторе печати с более новыми операторами:
1
|
print( '{one} is better than {two} which might not be better than {three}' . format (**language)) |
Вот результат, который мы получим, когда запустим приведенный выше фрагмент кода:
Именованные заполнители предлагают нам очень явное преимущество. Нам не нужно запоминать их индекс, и мы можем повторно использовать каждый заполнитель сколько угодно раз.
3. Строки форматирования Python — Заключение
В этом уроке мы проверили очень простые примеры того, как мы можем отформатировать строки и числа в Python. Мы попытались описать более новую версию методологий форматирования, которая намного более интуитивна, чем более старая версия методологий форматирования.