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 ?

Pourquoi Python affiche-t-il des doubles barres obliques inverses dans la représentation sous forme de chaîne ?

Barbara Streisand
Libérer: 2024-12-24 12:21:15
original
451 Les gens l'ont consulté

Why Does Python Show Double Backslashes in String Representation?

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?"
Copier après la connexion

La méthode repr() convertit cette chaîne en :

'why\does\it\happen?'
Copier après la connexion

Notez les doubles barres obliques inverses dans la représentation. Cependant, lors de l'impression de my_string, vous obtenez :

why\does\it\happen?
Copier après la connexion

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?'
Copier après la connexion

É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
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal