Pourquoi la terminaison par une seule barre oblique inverse est interdite dans les chaînes brutes de Python
Bien qu'il puisse sembler intuitif que les chaînes brutes en Python devraient autoriser un nombre quelconque de les barres obliques inverses comme caractères normaux, il y a une raison spécifique pour la restriction sur les nombres impairs barres obliques inverses.
La nature cachée des barres obliques inverses dans les chaînes brutes
La clé pour comprendre cette restriction réside dans la reconnaissance du fait que les barres obliques inverses ont un double objectif dans les chaînes brutes. Contrairement à une idée reçue, ce ne sont pas de simples personnages ordinaires. Comme l'indique la documentation Python :
"Lorsqu'un préfixe 'r' ou 'R' est présent, un caractère suivant une barre oblique inverse est inclus dans la chaîne sans changement, et toutes les barres obliques inverses sont laissées dans la chaîne."
Cela signifie que chaque caractère suivant une barre oblique inverse devient une partie intégrante de la chaîne brute. Par exemple :
Le dilemme des barres obliques inverses impaires
Avec cette compréhension, considérons le brut suivant chaîne :
Ceci contient 'a', 'b', 'c', '', '''. Lorsque l'analyseur rencontre une barre oblique inverse dans une chaîne brute, il suppose qu'il y a deux caractères (la barre oblique inverse et un caractère après). la barre oblique inverse est le dernier caractère, ne laissant aucun guillemet final.
Par conséquent, Python n'autorise pas les barres obliques inverses impaires dans les chaînes brutes car elles consommeraient le caractère de fermeture de la chaîne, ce qui entraînerait dans une erreur de syntaxe.
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!