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 longLe 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

El módulo textwrap también es útil si quieres mostrar cadenas largas envolviéndolas u omitiéndolas.
Si tiene una cadena de métodos que es más larga que una sola línea de caracteres, en lugar de una cadena larga, puede romper la línea en el código también.

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://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

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 los siguientes paréntesis tienen un significado.

  • {} = set
  • [] = list

Por lo tanto, cuando se escribe una cadena larga en varias líneas, se utilizan paréntesis redondos ().
De nuevo, utilizando el hecho de que varias cadenas pueden concatenarse para formar una única cadena, podemos escribir lo siguiente.

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

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

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb