Maison >développement back-end >Tutoriel Python >Pourquoi Python affiche-t-il des doubles barres obliques inverses dans la représentation sous forme de chaîne ?
Double représentation des barres obliques inverses dans les chaînes Python
Lorsque vous rencontrez des séquences de barres obliques inverses () dans une chaîne Python, il est courant d'observer un effet de duplication . Ce comportement découle de la façon dont Python représente les chaînes en interne.
Représentation par rapport au contenu réel
Lorsque vous attribuez une chaîne à une variable (par exemple, ma_chaîne), la variable contient une représentation interne de cette chaîne. Cette représentation est créée à l'aide de la méthode __repr__(). Cependant, lorsque vous imprimez la chaîne (par exemple, print(my_string)), le contenu réel de la chaîne, sans aucune barre oblique inverse en double, est affiché.
Par exemple, considérons la chaîne :
my_string = "why\does\it\happen?"
La méthode repr() convertit cette chaîne en :
'why\does\it\happen?'
Notez les doubles barres obliques inverses dans la représentation. Cependant, lors de l'impression de my_string, vous obtenez :
why\does\it\happen?
Pourquoi la duplication ?
Python utilise des barres obliques inverses comme caractères d'échappement. Par exemple, n représente une nouvelle ligne et t représente un onglet. Pour faire la distinction entre une séquence d'échappement prévue et une barre oblique inverse littérale, Python échappe à toute barre oblique inverse utilisée dans la représentation sous forme de chaîne avec une autre barre oblique inverse.
Résoudre la confusion
Pour obtenir la séquence d'échappement réelle contenu d'une chaîne, y compris les barres obliques inverses simples, utilisez la fonction print(). Si vous avez besoin de la représentation de la chaîne, vous pouvez y accéder à l'aide de la fonction intégrée repr() :
print(my_string) # why\does\it\happen? print(repr(my_string)) # 'why\does\it\happen?'
Échapper aux barres obliques inverses
Si vous avez l'intention d'utiliser un une barre oblique inverse littérale dans une chaîne, vous devez y échapper avec une autre barre oblique inverse. Cela empêche Python d'interpréter la barre oblique inverse comme un caractère d'échappement. Par exemple :
"this\text\is\what\you\need" # Produces: this\text\is\what\you\need
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!