Pourquoi les barres obliques inverses apparaissent deux fois
Lorsque vous stockez des chaînes avec des barres obliques inverses en Python, vous remarquerez peut-être qu'elles apparaissent doublées. Cela se produit lors de l'utilisation de la méthode __repr__() pour récupérer la représentation de la chaîne. En utilisant print() à la place, vous observerez que les barres obliques inverses restent uniques, comme prévu :
>>> my_string = "why\does\it\happen?" >>> my_string 'why\does\it\happen?' >>> print(my_string) why\does\it\happen?
Malgré le doublement affiché dans la représentation, la chaîne elle-même ne contient que des barres obliques inverses simples, comme le démontre sa longueur. :
>>> 'a\b' 'a\b' >>> len('a\b') 3
Pour récupérer la représentation standard d'une chaîne, utilisez la repr() function :
>>> print(repr(my_string)) 'why\does\it\happen?'
Python représente les barres obliques inverses comme dans des chaînes car la barre oblique inverse agit comme un caractère d'échappement. Par exemple, n signifie une nouvelle ligne et t représente un onglet. Cependant, cela peut entraîner un comportement involontaire :
>>> print("this\text\is\not\what\it\seems") this ext\is ot\what\it\seems
Pour spécifier l'apparence littérale d'une barre oblique inverse, doublez-la :
>>> print("this\text\is\what\you\need") this\text\is\what\you\need
En conclusion, lors de la récupération de la représentation d'une chaîne, Python échappe toutes les barres obliques inverses pour des raisons de sécurité. Néanmoins, la chaîne réelle ne contient que des barres obliques inverses simples. Pour plus d'informations sur les littéraux de chaîne de Python, reportez-vous à la documentation officielle.
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!