Escribir cadenas largas de texto en varias líneas en Python

Negocio

Si utiliza un comprobador de código compatible con PEP8, como flake8 en Python, obtendrá el siguiente error cuando una línea supere los 80 caracteres.
E501 line too long

Le mostraré cómo dividir una cadena larga de más de 80 caracteres, como una URL, en varias líneas de código.

  • Ignorar los saltos de línea con barras invertidas (\)
  • Los saltos de línea pueden encerrarse libremente entre paréntesis

Además, el módulo textwrap es útil si quieres imprimir y mostrar cadenas largas envolviéndolas o abreviándolas.

Si el número de caracteres de una línea es mayor en una cadena de métodos que en una cadena larga, la línea puede romperse también en el código.

Ignorar los saltos de línea con barras invertidas (\)

En Python, la barra invertida (\) es un carácter de continuación, y cuando se coloca al final de una línea, ignora los saltos de línea posteriores y asume que la línea continúa.

n = 1 + 2 \
    + 3

print(n)
# 6

Además, cuando se escriben varios literales de cadena sucesivamente, se concatenan para formar una sola cadena como se muestra a continuación.

s = 'aaa' 'bbb'

print(s)
# aaabbb

Combinando los dos, se puede escribir una cadena larga en varias líneas de código, como se muestra a continuación.

s = 'https://ja.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://ja.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

Tenga en cuenta que sólo los literales de cadena (encerrados en ' o «») pueden ser concatenados, y las variables que contienen cadenas darán lugar a un error.

s_var = 'xxx'

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

Para concatenar variables entre sí o variables con literales de cadena, utilice el operador +.

s = 'aaa' + s_var + 'bbb'

print(s)
# aaaxxxbbb

Incluso cuando están separadas por una barra invertida (\), el operador + es necesario para concatenar variables.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

Los saltos de línea pueden encerrarse libremente entre paréntesis

En Python, puede romper libremente las líneas dentro de los siguientes paréntesis. Puedes utilizar esta regla para encerrar cadenas largas de texto entre paréntesis.

  • ()
  • {}
  • []

Tenga en cuenta que algunos paréntesis se utilizan de otras maneras, como se muestra a continuación, por lo que utilice paréntesis redondos () para dicho uso.

  • {}Set: Set
  • []: Lista

De nuevo, utilizando el hecho de que se pueden concatenar varias cadenas para formar una sola, podemos escribir lo siguiente

s = ('https://ja.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://ja.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

Como en el ejemplo con la barra invertida, el operador + es necesario cuando se incluyen variables.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb