116 votes

Comment puis-je imprimer un seul backslash?

Lorsque j'écris print('\') ou print("\") ou print("'\'"), Python n'imprime pas le symbole de barre oblique inverse \. Au lieu de cela, il génère une erreur pour les deux premiers et imprime '' pour le troisième. Que dois-je faire pour imprimer une barre oblique ?


Cette question concerne la création d'une chaîne de caractères contenant une seule barre oblique inverse. Cela est particulièrement délicat car cela ne peut pas être fait avec des chaînes brutes. Pour la question connexe sur la raison pour laquelle une telle chaîne est représentée avec deux barres obliques, voir <a href="https://stackoverflow.com/questions/24085680/">Pourquoi les barres obliques apparaissent-elles deux fois ?</a>. Pour inclure des barres obliques littérales dans d'autres chaînes, consultez <a href="https://stackoverflow.com/questions/3380484">utilisation de la barre oblique inverse en python (sans échappement)</a>.

127voto

Bucket Points 5908

Vous devez échapper votre barre oblique inverse en la précédant par, oui, une autre barre oblique inverse :

print("\\")

Et pour les versions antérieures à Python 3 :

print "\\"

Le caractère \ est appelé un caractère d'échappement, qui interprète le caractère qui le suit différemment. Par exemple, n à lui seul est simplement une lettre, mais lorsque vous le précédez d'une barre oblique inverse, il devient \n, qui est le caractère de saut de ligne.

Comme vous pouvez probablement le deviner, \ doit également être échappé afin qu'il ne fonctionne pas comme un caractère d'échappement. Vous devez... échapper l'échappement, essentiellement.

Voir la documentation Python 3 pour les littéraux de chaînes de caractères.

15voto

Jean-François Fabre Points 94672

Une façon astucieuse d'imprimer un backslash sans avoir à l'échapper est de passer son code de caractère à chr :

>>> print(chr(92))
\

1voto

Tae Soo Kim Points 360
imprimer(fr"\{''}")

ou que diriez-vous de ceci

imprimer(r"\ "[0])

1voto

Karl Knechtel Points 24349

Pour complétude: Un backslash peut également être échappé en tant que séquence hexadécimale: "\x5c"; ou une courte séquence Unicode: "\u005c"; ou une longue séquence Unicode: "\U0000005c". Toutes ces séquences produiront une chaîne avec un seul backslash, que Python vous rapportera joyeusement dans sa représentation canonique - '\\'.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X