Как форматировать текст в 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!\"")
OutputSammy says, "Hello!"
Используя escape-символ \
, мы можем использовать двойные кавычки, чтобы заключить строку, содержащую текст, заключенный в двойные кавычки.
Точно так же мы можем использовать escape-символ \
для добавления апострофа в строку, заключенную в одинарные кавычки:
print('Sammy\'s balloon is red.')
OutputSammy'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.")
OutputThis string
spans multiple
lines.
Мы также можем комбинировать escape-символы. Давайте напечатаем многострочную строку и включим интервалы табуляции для подробного списка, например:
print("1.\tShark\n2.\tShrimp\n10.\tSquid")
Output1. Shark
2. Shrimp
10. Squid
Горизонтальный отступ, обеспечиваемый escape-символом \t
, обеспечивает выравнивание во втором столбце в приведенном выше примере, что делает вывод чрезвычайно читаемым для людей.
Хотя escape-символ \n
хорошо работает с короткими строковыми литералами, важно убедиться, что исходный код также удобочитаем для человека. В случае длинных строк подход с тройными кавычками к многострочным строкам часто предпочтительнее.
Экранирующие символы используются для добавления к строкам дополнительного форматирования, которое может быть трудно или невозможно выполнить. Без управляющих символов, как бы вы построили строку Сэмми говорит: «Цвет воздушных шаров красный»
?
##Необработанные строки
Что, если мы не хотим специального форматирования в наших строках? Например, нам может понадобиться сравнить или оценить строки компьютерного кода, которые намеренно используют обратную косую черту, поэтому мы не хотим, чтобы Python использовал ее в качестве escape-символа.
Необработанная строка указывает Python игнорировать все форматирование в строке, включая escape-символы.
Мы создаем необработанную строку, помещая r
перед строкой, прямо перед начальной кавычкой:
print(r"Sammy says,\"The balloon\'s color is red.\"")
OutputSammy says,\"The balloon\'s color is red.\"
Создавая необработанную строку, используя r
перед заданной строкой, мы можем сохранить обратную косую черту и другие символы, которые используются в качестве escape-символов.
##Заключение
В этом руководстве было рассмотрено несколько способов форматирования текста в Python 3 посредством работы со строками. Используя такие методы, как escape-символы или необработанные строки, мы можем гарантировать, что строки нашей программы правильно отображаются на экране, чтобы конечный пользователь мог легко прочитать весь выходной текст.
Продолжайте узнавать больше о строках, изучив следующие руководства:
- Введение в строковые функции
- Как индексировать и нарезать строки
- Как использовать средства форматирования строк