Запись длинных строк текста на нескольких строках в Python

Бизнес

Если вы используете PEP8-совместимую программу проверки кода, такую как flake8 в Python, вы получите следующую ошибку, если строка превышает 80 символов.E501 line too longЯ покажу вам, как разбить длинную строку из более чем 80 символов, такую как URL, на несколько строк кода.

  • Игнорировать переносы строк с обратными слешами (\)
  • Разрывы строк могут быть свободно заключены в круглые скобки

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

Игнорировать переносы строк с обратными слешами (\)

В Python обратный слеш (\) является символом продолжения, и когда он помещается в конец строки, он игнорирует последующие переносы строк и считает, что строка продолжается.

n = 1 + 2 \
    + 3

print(n)
# 6

Кроме того, когда несколько строковых литералов записываются последовательно, они объединяются в одну строку, как показано ниже.

s = 'aaa' 'bbb'

print(s)
# aaabbb

Комбинируя эти два способа, длинную строку можно записать в несколько строк кода, как показано ниже.

s = 'https://wikipedia.org/wiki/'\
    '%E3%83%97%E3%83%AD%E3%82%B0%E3%83'\
    '%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E'

print(s)
# https://wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E

Обратите внимание, что конкатенировать можно только строковые литералы (заключенные в ' или «»), а переменные, содержащие строки, приведут к ошибке.

s_var = 'xxx'

# s = 'aaa' s_var 'bbb'
# SyntaxError: invalid syntax

Для конкатенации переменных друг с другом или переменных со строковыми литералами используйте оператор +.

s = 'aaa' + s_var + 'bbb'

print(s)
# aaaxxxbbb

Даже если они разделены обратной косой чертой (\), для объединения переменных требуется оператор +.

s = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'\
    + s_var\
    + 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

Разрывы строк могут быть свободно заключены в круглые скобки

В Python можно свободно разрывать строки внутри следующих за ними круглых скобок. Это правило можно использовать для заключения длинных строк текста в круглые скобки.

  • ()
  • {}
  • []

Обратите внимание, что следующие скобки имеют значение.

  • {} = set
  • [] = list

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

s = ('https://wikipedia.org/wiki/'
     '%E3%83%97%E3%83%AD%E3%82%B0%E3%83'
     '%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E')

print(s)
# https://wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E

Как и в примере с обратной косой чертой, оператор + необходим при включении переменных.

s = ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
     + s_var
     + 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Copied title and URL