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

Вступление

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

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

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

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

В программе «Hello, World!» Строковый литерал имеет вид «« Hello, World! »`, А строковое значение равно «+ Hello, World! +» Без кавычек. Строковое значение - это то, что мы видим как вывод в окне терминала, когда запускаем программу на Python.

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

Цитаты и апострофы

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

'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 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-символ, мы можем иметь апостроф в строке, которая использует одинарные кавычки.

Когда мы будем использовать тройные кавычки, как мы делали выше, мы увидим, что при печати строки есть пробел сверху и снизу. Мы можем удалить эти пробелы, используя 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 +, обеспечивает выравнивание во втором столбце в приведенном выше примере, делая вывод чрезвычайно читабельным для людей.

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

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

Сырые строки

Что если мы не хотим специального форматирования в наших строках? Например, нам может потребоваться сравнить или оценить строки компьютерного кода, которые специально используют обратную косую черту, поэтому мы не хотим, чтобы 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-символы или необработанные строки, мы можем гарантировать, что строки нашей программы правильно отображаются на экране, чтобы конечный пользователь мог легко прочитать весь выходной текст.

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