Comment écrire des chaînes multilignes en Python (triples guillemets et jointures)

Découvrez les meilleures façons d'écrire des chaînes multilignes en Python. Explorez les guillemets triples, la concaténation de parenthèses, les méthodes de jointure de nouvelle ligne et les contrôles de format.

Essayez cette solution dans l'éditeur

Aperçu

Lorsque vous écrivez des blocs de texte dans votre application, tels que des requêtes SQL, des modèles HTML, des instructions CLI ou de longs messages de débogage, vous devrez souvent répartir les valeurs de chaîne sur plusieurs lignes. Python propose plusieurs façons de définir des chaînes multilignes, chacune avec des implications de formatage distinctes.

La manière la plus directe et la plus courante d'écrire une chaîne multiligne consiste à utiliser la syntaxe des guillemets triples (soit `'''` soit `"""`). Les chaînes entre guillemets triples préservent littéralement toutes les entrées de caractères, y compris les nouvelles lignes brutes et l'indentation. Cela rend le formatage très visuel mais présente un inconvénient : les tabulations ou les espaces de début utilisés pour aligner le code à l'intérieur des boucles ou des classes imbriquées feront partie de la valeur réelle de la chaîne.

Pour définir une chaîne multiligne qui s'étend visuellement sur plusieurs lignes dans votre code source mais qui est compilée en une seule longue ligne (ou qui ne capture pas les espaces d'indentation du code), vous pouvez placer les chaînes standard entre guillemets simples entre parenthèses. Python concatène automatiquement les chaînes littérales adjacentes entre parenthèses, rendant votre code propre et hautement lisible.

Sortie de code et d'exécution

Ce script montre l'écriture de texte multiligne à l'aide de guillemets triples, de concaténation de chaînes de parenthèses et de retraits nets.

multiline_strings.py
Essayez dans l'éditeur
# 1. Triple Quote Syntax (preserves all newlines and indentation)
sql_query = """SELECT id, username, email
FROM users
WHERE active = True
ORDER BY id DESC;"""

print("--- Triple Quotes Query ---")
print(sql_query)

# 2. Parentheses Concatenation (splits code line, compiles into single line)
long_message = (
    "This is a long message that we split "
    "across multiple lines in our editor, "
    "but it compiles into a single text block."
)
print("\n--- Parentheses Concatenation ---")
print(long_message)

# 3. Joining list elements for clean line breaks
lines = [
    "First instruction line.",
    "Second instruction line.",
    "Third instruction line."
]
joined_text = "\n".join(lines)
print("\n--- Joined Lines ---")
print(joined_text)
Sortie terminale
--- Triple Quotes Query ---
SELECT id, username, email
FROM users
WHERE active = True
ORDER BY id DESC;

--- Parentheses Concatenation ---
This is a long message that we split across multiple lines in our editor, but it compiles into a single text block.

--- Joined Lines ---
First instruction line.
Second instruction line.
Third instruction line.

Mise en œuvre étape par étape

  • Utilisez des guillemets triples ("" ou """) pour écrire de longs blocs de texte qui préservent les nouvelles lignes littérales.
  • Enveloppez les chaînes consécutives entre parenthèses ( ) sans virgules pour diviser le code visuellement sans ajouter de nouvelles lignes à la sortie.
  • Utilisez textwrap.dedent() lorsque vous travaillez avec des guillemets triples dans des classes ou des fonctions pour nettoyer l'indentation de début.

Foire aux questions

Comment puis-je supprimer l'indentation de début d'une chaîne imbriquée entre guillemets triples ?

Importez le module textwrap intégré et transmettez la chaîne à textwrap.dedent(text) pour nettoyer les espaces de début.

Quelle est la différence entre les guillemets simples et doubles triples ?

Il n'y a pas de différence fonctionnelle entre "' et """. Choisissez une convention et respectez-la de manière cohérente tout au long de votre projet.

Sujets connexes

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.