Escrever longas cadeias de texto em várias linhas em Python

O negócio

Se utilizar um verificador de código conforme PEP8, tal como o floco8 em Python, receberá o seguinte erro quando uma linha exceder 80 caracteres.E501 line too longMostrar-vos-ei como quebrar uma longa sequência de mais de 80 caracteres, como um URL, em múltiplas linhas de código.

  • Ignorar quebras de linha com contrabarragens (\)
  • As quebras de linha podem ser livremente fechadas entre parênteses

O módulo de embrulho de texto também é útil se desejar produzir e exibir cadeias longas, embrulhando-as ou omitindo-as.
Se tiver uma cadeia de métodos mais longa do que uma única linha de caracteres, em vez de uma cadeia longa, também pode quebrar a linha no código.

Ignorar quebras de linha com contrabarragens (\)

Em Python, a barra invertida (\) é um carácter de continuação, e quando colocada no fim de uma linha, ignora as quebras de linha subsequentes e assume que a linha continua.

n = 1 + 2 \
    + 3

print(n)
# 6

Além disso, quando múltiplas literais de cordas são escritas em sucessão, elas são concatenadas para formar uma única corda, como se mostra abaixo.

s = 'aaa' 'bbb'

print(s)
# aaabbb

Combinando os dois, uma cadeia longa pode ser escrita em múltiplas linhas de código, como se mostra abaixo.

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

Note-se que apenas os literais de cordas (incluídos em ' ou “”) podem ser concatenados, e as variáveis contendo cordas resultarão num erro.

s_var = 'xxx'

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

Para concatenar variáveis umas às outras ou variáveis para encadear literais, usar o operador +.

s = 'aaa' + s_var + 'bbb'

print(s)
# aaaxxxbbb

Mesmo quando separado por uma contrabarra (\), o operador + é obrigado a concatenar variáveis.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

As quebras de linha podem ser livremente fechadas entre parênteses

Em Python, pode quebrar livremente as linhas dentro dos seguintes parênteses. Pode utilizar esta regra para incluir longas linhas de texto entre parênteses.

  • ()
  • {}
  • []

Note-se que os seguintes parênteses têm um significado.

  • {} = set
  • [] = list

Portanto, ao escrever um fio longo em várias linhas, utilizar parênteses redondos ().
Mais uma vez, utilizando o facto de que múltiplas cordas podem ser concatenadas para formar uma única corda, podemos escrever o seguinte.

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

Tal como no exemplo com a barra invertida, o operador + é necessário quando as variáveis são incluídas.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Copied title and URL