Поиск по сайту:

Как форматировать текст в Python 3


###Введение

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

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

## Предпосылки

У вас должен быть установлен Python 3 и настроена среда программирования на вашем компьютере или сервере. Если у вас не настроена среда программирования, вы можете обратиться к руководствам по установке и настройке среды программирования на вашем сервере, подходящей для вашей операционной системы (Ubuntu, CentOS, Debian и т. д.).

##Строковые литералы

Давайте сначала проведем различие между строковым литералом и строковым значением. Строковый литерал — это то, что мы видим в исходном коде компьютерной программы, включая кавычки. Строковое значение — это то, что мы видим, когда вызываем функцию print() и запускаем программу.

В разделе «Привет, мир!» программы, строковым литералом является Hello, World!, а строковым значением является Hello, World! без кавычек. Строковое значение — это то, что мы видим в качестве вывода в окне терминала, когда мы запускаем программу Python.

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

##Кавычки и апострофы

Поскольку в Python мы можем использовать одинарные или двойные кавычки, мы также можем вставлять кавычки в строку, используя двойные кавычки внутри строки, заключенной в одинарные кавычки:

Информация: Чтобы следовать примеру кода в этом руководстве, откройте интерактивную оболочку Python в вашей локальной системе, выполнив команду python3. Затем вы можете копировать, вставлять или редактировать примеры, добавляя их после приглашения >>>.

'Sammy says, "Hello!"'

Или, чтобы использовать притяжательный апостроф в строке, заключенной в двойные кавычки:

"Sammy's balloon is red."

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

##Несколько строк

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

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

'''
This string is on 
multiple lines
within three single 
quotes on either side.
'''
"""
This string is on 
multiple lines
within three double 
quotes on either side.
"""

С помощью тройных кавычек вы можете печатать строки в несколько строк, чтобы текст, особенно длинный текст, было легче читать.

##Экран-символы

Другой способ форматирования строк — использование escape-символа. Все escape-символы начинаются с клавиши обратной косой черты ( \ ) в сочетании с другим символом в строке для форматирования данной строки определенным образом.

Вот список нескольких распространенных escape-символов:

Escape character How it formats
\ New line in a multi-line string
\\ Backslash
' Apostrophe or single quote
" Double quote
\n Line break
\t Tab (horizontal indentation)

Давайте используем escape-символ, чтобы добавить кавычки к примеру с кавычками выше, но на этот раз мы будем использовать двойные кавычки:

print("Sammy says, \"Hello!\"")
Output
Sammy says, "Hello!"

Используя escape-символ \, мы можем использовать двойные кавычки, чтобы заключить строку, содержащую текст, заключенный в двойные кавычки.

Точно так же мы можем использовать escape-символ \ для добавления апострофа в строку, заключенную в одинарные кавычки:

print('Sammy\'s balloon is red.')
Output
Sammy's balloon is red.

Поскольку теперь мы используем escape-символ, у нас может быть апостроф в строке, в которой используются одинарные кавычки.

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

"""\
This multi-line string
has no space at the
top or the bottom
when it prints.\
"""

Точно так же мы можем использовать escape-символ \n для разрыва строк без нажатия клавиши enter или return:

print("This string\nspans multiple\nlines.")
Output
This string spans multiple lines.

Мы также можем комбинировать escape-символы. Давайте напечатаем многострочную строку и включим интервалы табуляции для подробного списка, например:

print("1.\tShark\n2.\tShrimp\n10.\tSquid")
Output
1. Shark 2. Shrimp 10. Squid

Горизонтальный отступ, обеспечиваемый escape-символом \t, обеспечивает выравнивание во втором столбце в приведенном выше примере, что делает вывод чрезвычайно читаемым для людей.

Хотя escape-символ \n хорошо работает с короткими строковыми литералами, важно убедиться, что исходный код также удобочитаем для человека. В случае длинных строк подход с тройными кавычками к многострочным строкам часто предпочтительнее.

Экранирующие символы используются для добавления к строкам дополнительного форматирования, которое может быть трудно или невозможно выполнить. Без управляющих символов, как бы вы построили строку Сэмми говорит: «Цвет воздушных шаров красный»?

##Необработанные строки

Что, если мы не хотим специального форматирования в наших строках? Например, нам может понадобиться сравнить или оценить строки компьютерного кода, которые намеренно используют обратную косую черту, поэтому мы не хотим, чтобы Python использовал ее в качестве escape-символа.

Необработанная строка указывает Python игнорировать все форматирование в строке, включая escape-символы.

Мы создаем необработанную строку, помещая r перед строкой, прямо перед начальной кавычкой:

print(r"Sammy says,\"The balloon\'s color is red.\"")
Output
Sammy says,\"The balloon\'s color is red.\"

Создавая необработанную строку, используя r перед заданной строкой, мы можем сохранить обратную косую черту и другие символы, которые используются в качестве escape-символов.

##Заключение

В этом руководстве было рассмотрено несколько способов форматирования текста в Python 3 посредством работы со строками. Используя такие методы, как escape-символы или необработанные строки, мы можем гарантировать, что строки нашей программы правильно отображаются на экране, чтобы конечный пользователь мог легко прочитать весь выходной текст.

Продолжайте узнавать больше о строках, изучив следующие руководства:

  • Введение в строковые функции
  • Как индексировать и нарезать строки
  • Как использовать средства форматирования строк