Écrire de longues chaînes de texte sur plusieurs lignes en Python

Affaires

Si vous utilisez un vérificateur de code conforme à la PEP8, tel que flake8 en Python, vous obtiendrez l'erreur suivante lorsqu'une ligne dépasse 80 caractères.
E501 line too long

Je vais vous montrer comment décomposer une longue chaîne de plus de 80 caractères, telle qu'une URL, en plusieurs lignes de code.

  • Ignorer les sauts de ligne avec les barres obliques inversées (\)
  • Les sauts de ligne peuvent être librement encadrés par des parenthèses.

De même, le module textwrap est utile si vous souhaitez produire et afficher de longues chaînes de caractères en les enveloppant ou en les abrégeant.

Si le nombre de caractères d'une ligne est plus long dans une chaîne de méthodes que dans une longue chaîne de caractères, la ligne peut être rompue dans le code également.

Ignorer les sauts de ligne avec les barres obliques inversées (\)

En Python, la barre oblique inversée (\) est un caractère de continuation, et lorsqu'elle est placée à la fin d'une ligne, elle ignore les sauts de ligne ultérieurs et suppose que la ligne se poursuit.

n = 1 + 2 \
    + 3

print(n)
# 6

De même, lorsque plusieurs chaînes littérales sont écrites successivement, elles sont concaténées pour former une seule chaîne, comme indiqué ci-dessous.

s = 'aaa' 'bbb'

print(s)
# aaabbb

En combinant les deux, une longue chaîne de caractères peut être écrite en plusieurs lignes de code, comme illustré ci-dessous.

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

Notez que seuls les littéraux de chaînes de caractères (entourés de ' ou “”) peuvent être concaténés, et que les variables contenant des chaînes de caractères entraîneront une erreur.

s_var = 'xxx'

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

Pour concaténer des variables entre elles ou des variables à des chaînes de caractères, utilisez l'opérateur +.

s = 'aaa' + s_var + 'bbb'

print(s)
# aaaxxxbbb

Même lorsqu'elles sont séparées par une barre oblique inverse (\), l'opérateur + est nécessaire pour concaténer les variables.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

Les sauts de ligne peuvent être librement encadrés par des parenthèses.

En Python, vous pouvez librement rompre les lignes à l'intérieur des parenthèses suivantes. Vous pouvez utiliser cette règle pour mettre entre parenthèses de longues chaînes de texte.

  • ()
  • {}
  • []

Notez que certaines parenthèses sont utilisées d'une autre manière, comme indiqué ci-dessous, et utilisez donc des parenthèses rondes () pour ces usages.

  • {}Set : Set
  • []: Liste

Encore une fois, en utilisant le fait que plusieurs chaînes de caractères peuvent être concaténées ensemble pour former une seule chaîne, nous pouvons écrire ce qui suit

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

Comme dans l'exemple avec la barre oblique inversée, l'opérateur + est requis lorsque des variables sont incluses.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Copied title and URL