Maison >développement back-end >Tutoriel Python >Pourquoi Python affiche-t-il des barres obliques inverses doublées dans les représentations sous forme de chaîne ?

Pourquoi Python affiche-t-il des barres obliques inverses doublées dans les représentations sous forme de chaîne ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-21 09:18:11354parcourir

Why Does Python Show Doubled Backslashes in String Representations?

Barres obliques inverses doublées dans les représentations Python

En Python, lorsque vous créez une chaîne contenant des barres obliques inverses, vous remarquerez peut-être qu'elles apparaissent doublées. Ce comportement provient de la méthode __repr__(), qui génère une représentation de la chaîne à des fins de débogage.

Cependant, la chaîne réelle, accessible via la fonction print(), contient des barres obliques inverses uniques comme prévu :

my_string = "why\does\it\happen?"
print(my_string)  # Outputs: why\does\it\happen?

Cette duplication est due au rôle des barres obliques inverses comme caractères d'échappement en Python. Par exemple, n représente une nouvelle ligne et t représente un onglet. Pour éviter toute ambiguïté, Python échappe aux barres obliques inverses en ajoutant une barre oblique inverse supplémentaire, ce qui entraîne .

print("this\text\is\not\what\it\seems")  # Outputs strange escapes
print("this\text\is\what\you\need")  # Preserves the literal backslashes

Lorsque l'interpréteur Python renvoie la représentation d'une chaîne, il ne prend aucun risque et échappe à toutes les barres obliques inverses, qu'elles provoquent ou non tout problème. Cependant, la chaîne réelle reste intacte avec des barres obliques inverses simples.

Pour des informations plus détaillées sur la gestion par Python des littéraux de chaîne, reportez-vous à la documentation sur les littéraux de chaîne et d'octets, disponible ici : [littéraux de chaîne et d'octets](https ://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn