Comment utiliser les chaînes brutes en Python
Introduction
Vous pouvez créer une chaîne brute en Python en préfixant un littéral de chaîne avec r ou R. Une chaîne brute en Python traite le caractère anti-slash (\) comme un caractère littéral. La chaîne brute est utile lorsqu'une chaîne doit contenir un anti-slash, comme pour une expression régulière ou un chemin de répertoire Windows, et que vous ne souhaitez pas qu'il soit traité comme un caractère d'échappement. Cet article couvre les bases du fonctionnement des chaînes brutes en Python et fournit quelques exemples courants sur la manière d'utiliser des chaînes brutes pour inclure des caractères spéciaux dans des chaînes.
Les exemples de cet article utilisent la console interactive Python dans la ligne de commande pour démontrer différents scénarios de chaînes brutes.
Inclure un caractère de nouvelle ligne dans une chaîne en utilisant une chaîne brute
Cet exemple utilise une chaîne avec une valeur : Hi\nHello. Si vous essayez d'assigner cette valeur à une chaîne normale, alors le caractère de nouvelle ligne (\n) crée une nouvelle ligne :
- s = 'Hi\nHello'
Imprime la chaîne :
- print(s)
La sortie est :
Hi
Hello
La sortie montre que le caractère de nouvelle ligne entraîne une nouvelle ligne.
Pour inclure le caractère de saut de ligne dans la chaîne, préfixez la variable de chaîne par r ou R pour créer une chaîne brute :
- raw_s = r'Hi\nHello'
Imprime la chaîne :
- print(raw_s)
La sortie est :
Hi\nHello
La sortie inclut le caractère de nouvelle ligne.
Inclure des caractères de double barre oblique dans une chaîne en utilisant une chaîne brute
Si vous essayez d'inclure des caractères de double barre oblique inversée, par exemple pour un chemin de nom d'hôte, dans une chaîne normale, alors le premier caractère de barre oblique inversée ne s'affichera pas car le compilateur considère la barre oblique inversée comme un indicateur d'échappement.
Par exemple, créez une chaîne qui contient un chemin :
- s = '\\examplehost\digitalocean\content\'
Imprime la chaîne :
- print(s)
La sortie est :
\examplehost\digitalocean\content\
La sortie montre que le premier caractère de barre oblique inversée n'est pas inclus dans la chaîne.
Pour inclure les deux caractères de barre oblique inversée dans la chaîne, préfixez la variable de chaîne avec r ou R pour créer une chaîne brute :
- s = r'\\examplehost\digitalocean\content\'
Imprime la chaîne :
- print(s)
La sortie est :
\\examplehost\digitalocean\content\
La sortie inclut à la fois des caractères de barre oblique inversée.
Dépannage des guillemets et des caractères de barre oblique inversée dans les chaînes brutes
Dans une chaîne brute, les guillemets peuvent toujours être échappés par un caractère de barre oblique inversée, cependant, le caractère de barre oblique inversée reste dans la chaîne brute résultante.
De plus, une chaîne brute ne peut pas se terminer par un nombre impair de caractères de barre oblique inversée. En raison de cette caractéristique, vous ne pouvez pas créer une chaîne brute contenant un seul caractère de barre oblique inversée, donc r"/" est une chaîne invalide.
Exemples de chaînes brutes invalides
Dans cet exemple, la fin de la citation est manquante dans la sortie car elle est échappée par le caractère anti-slash, ce qui entraîne une erreur de chaîne littérale non terminée :
r'\'
Dans cet exemple, les deux premiers barres obliques inverses s'échapperont entre elles, et la troisième tentera d'échapper la fin des guillemets, ce qui entraînera une erreur de chaîne littérale non terminée:
r'ab"'
Exemples de chaînes brutes valides
Voici quelques exemples de chaînes brutes valides qui incluent des guillemets et des caractères de barre oblique.
Créez une chaîne brute qui échappe des guillemets :
- s = r"\"\""
Imprime la chaîne :
- print(s)
La sortie est :
\"\"
La sortie montre que les caractères de barre oblique inversée échappent les guillemets afin que la chaîne ne se termine pas, mais les caractères de barre oblique inversée restent dans la chaîne de résultat.
Créez une chaîne brute avec un nombre pair de caractères de barre oblique inversée :
- s = R'ab\\'
Imprime la chaîne :
- print(s)
La sortie est :
ab\\
La sortie montre que le nombre pair de caractères de barre oblique inversée est inclus dans la chaîne de résultat.
Conclusion
Dans cet article, vous avez appris les bases des chaînes brutes en Python. Continuez votre apprentissage sur les chaînes en Python.
