Python >> Tutoriel Python >  >> Python

Chaînes multilignes Python

Défi :Comment créer une chaîne multiligne en Python ?

Dans ce didacticiel, je vais vous montrer quatre méthodes pour créer et gérer des chaînes multilignes en Python. Les plus pythoniques sont les deux premières méthodes avec triple guillemet simple ''' ... ''' ou triples guillemets doubles """ ... """ qui enveloppent une chaîne sur plusieurs lignes.

Méthode 1 :Chaîne multiligne avec trois guillemets simples

Tout d'abord, vous pouvez créer une chaîne multiligne en Python en utilisant des guillemets simples triples :

# Multi-line string with triple single quotes
shakespeare = '''
Well, you have made a simple choice; you know not
how to choose a man: Romeo! no, not he; though his
face be better than any man's, yet his leg excels
all men's; and for a hand, and a foot, and a body,
though they be not to be talked on, yet they are
past compare: he is not the flower of courtesy,
but, I'll warrant him, as gentle as a lamb. Go thy
ways, wench; serve God. What, have you dined at home?
'''

print(type(shakespeare))
# <class 'str'>

Méthode 2 :Chaîne multiligne avec triples guillemets doubles

Deuxièmement, vous pouvez créer une chaîne multiligne Python en utilisant des guillemets doubles triples :

shakespeare = """
Well, you have made a simple choice; you know not
how to choose a man: Romeo! no, not he; though his
face be better than any man's, yet his leg excels
all men's; and for a hand, and a foot, and a body,
though they be not to be talked on, yet they are
past compare: he is not the flower of courtesy,
but, I'll warrant him, as gentle as a lamb. Go thy
ways, wench; serve God. What, have you dined at home?
"""

print(type(shakespeare))
# <class 'str'>

Méthode 3 :Chaîne multiligne avec caractères de nouvelle ligne

Troisièmement, vous pouvez créer une chaîne multiligne en utilisant le caractère de saut de ligne :

shakespeare = 'Well, ... not\nhow to choose a man'
print(shakespeare)

Le résultat est la chaîne multiligne suivante :

Well, ... not
how to choose a man

Méthode 4 :Chaîne multiligne avec concaténation de chaînes

Quatrièmement, vous pouvez utiliser une combinaison de concaténation de chaînes, en échappant les caractères de nouvelle ligne avec la seule barre oblique inverse \ , et caractères de saut de ligne '\n' pour obtenir une chaîne multiligne.

shakespeare = "Well, you have made a simple choice; you know not\n" \
              + "how to choose a man: Romeo! no, not he; though his\n" \
              + "face be better than any man's, yet his leg excels\n" \
              + "all men's; and for a hand, and a foot, and a body\n"
            
print(type(shakespeare))
# <class 'str'>

Notez que le symbole "+" n'est pas strictement nécessaire pour la concaténation de chaînes, ce qui nous amène à la méthode 5 :

Méthode 5 :Chaîne multiligne avec concaténation de chaînes sans plus +

Cinquièmement, vous pouvez créer une chaîne multiligne en utilisant la concaténation de chaînes sans l'opérateur + en utilisant la propriété selon laquelle deux chaînes adjacentes sur la même ligne sont automatiquement concaténées en Python.

shakespeare = "Well, you have made a simple choice; you know not\n" \
              "how to choose a man: Romeo! no, not he; though his\n" \
              "face be better than any man's, yet his leg excels\n" \
              "all men's; and for a hand, and a foot, and a body\n"
            
print(type(shakespeare))
# <class 'str'>

Encore une fois, notez la barre oblique inverse avant les nouvelles lignes. Cela supprime la signification spéciale du caractère de nouvelle ligne, afin que Python ne génère pas d'erreur. Si vous ignorez l'échappement du caractère de nouvelle ligne en évitant l'utilisation de la seule barre oblique inverse à la fin de chaque ligne, Python ne peut pas en comprendre le sens car le code devient ambigu :

Une autre façon de lever cette ambiguïté est illustrée dans la méthode 6 :

Méthode 6 :Chaîne multiligne avec concaténation de chaînes entre parenthèses

Sixièmement, vous pouvez créer une chaîne multiligne en utilisant la concaténation de chaînes et envelopper toutes les lignes dans un environnement de parenthèses ( ... ) pour indiquer à Python que l'expression n'est pas encore terminée lorsque la ligne est terminée.

shakespeare = ("Well, you have made a simple choice; you know not\n"
              "how to choose a man: Romeo! no, not he; though his\n"
              "face be better than any man's, yet his leg excels\n"
              "all men's; and for a hand, and a foot, and a body\n")
            
print(type(shakespeare))
# <class 'str'>

C'est relativement facile à lire et cela ne nécessite pas l'utilisation du + et le \ les opérateurs.

Testez vos connaissances – Python Puzzle Multi-Line String

Considérez ce casse-tête Python :

print("""
A
B
C
"""=="\nA\nB\nC\n")

Exercice  :Quel est le résultat de ce puzzle Python ?

Que se passe-t-il dans ce puzzle ? L'idée de base est de montrer deux manières différentes d'écrire le même littéral de chaîne multiligne en Python.

Le premier est le moyen direct d'écrire une chaîne multiligne en Python :sous la forme d'une chaîne avec plusieurs lignes de code entre guillemets triples '''...''' ou """...""" .

La seconde est une manière plus concise d'écrire la même chaîne. Nous spécifions les sauts de ligne avec le caractère de nouvelle ligne '\n' .

Ces deux façons de couper les lignes dans les chaînes Python sont à la base des fonctionnalités avancées et des extraits de code. Les comprendre augmentera un peu plus vos compétences en codage.

Cliquez pour résoudre le casse-tête sur notre application de casse-tête Python interactive :êtes-vous un maître codeur ?
Testez vos compétences maintenant !