Imaginons que l'on souhaite afficher le texte suivant :
Il m'a dit "Bonjour" !
Ne pressentez-vous pas un problème ? Le texte contient des guillemets ; or, nous utilisons justement des guillemets pour délimiter nos chaînes de caractères.
Pour résoudre ce problème, on va utiliser le caractère \
(une barre oblique inversée, généralement appelée antislash).
Il est dit « caractère d'échappement » car, placé devant un autre caractère, il permet d'annuler son sens spécial.
Pour un guillemet, il va donc annuler la fonction de délimiteur d'une chaîne de caractères :
print("Il m'a dit \"Bonjour\" !")
Remarquez que \
peut également être utilisé pour donner un sens particulier à caractère ;
par exemple, \n
symbolise un retour à la ligne, et \t
symbolise une tabulation.
Mais, puisque \
a un sens spécial, comment faire si on souhaite afficher ce caractère ?
Et bien on va utiliser "\\"
, le premier annulant le caractère spécial du second pour le transformer en simple caractère.
Pour en afficher deux, on écrit donc "\\\\"
.
Autres notations
En Python, une chaîne de caractère peut aussi être délimitée par des apostrophes (ou guillemets simples), à la place des guillemets doubles. On peut donc écrire plus simplement :
print('Il a dit "Bonjour" !')
Comme les guillemets simples délimitent la chaîne, pas besoin de transformer les guillemets doubles, il n'y a pas de confusion. Si la chaîne contient à la fois des guillemets simples et des guillemets doubles, alors on peut utiliser des triples guillemets :
print("""Il m'a dit "Bonjour" !""")
Attention, cela ne marchera pas si le premier (ou dernier) caractère de la chaîne est lui aussi un guillemet. Ce n'est donc pas une solution miracle, mais elle permet de régler la plupart des situations qui arrivent en pratique.