Comment formater du texte en Python 3
###Introduction
Comme les chaînes sont souvent constituées de texte écrit, il y a de nombreux cas où nous pouvons vouloir avoir un contrôle plus important sur l'apparence des chaînes afin de les rendre plus lisibles pour les humains grâce à la ponctuation, aux sauts de ligne et à l'indentation.
Dans ce tutoriel, nous passerons en revue certaines des façons dont nous pouvons travailler avec les chaînes Python pour nous assurer que tout le texte de sortie est correctement formaté.
##Prérequis
Vous devriez avoir Python 3 installé et un environnement de programmation configuré sur votre ordinateur ou serveur. Si vous n'avez pas encore configuré d'environnement de programmation, vous pouvez vous référer aux guides d'installation et de configuration pour un environnement de programmation local ou pour un environnement de programmation sur votre serveur approprié à votre système d'exploitation (Ubuntu, CentOS, Debian, etc.)
##Littéraux de chaîne
Commençons par différencier un littéral de chaîne et une valeur de chaîne. Un littéral de chaîne est ce que nous voyons dans le code source d'un programme informatique, y compris les guillemets. Une valeur de chaîne est ce que nous voyons lorsque nous appelons la fonction print() et exécutons le programme.
Dans le programme « Hello, World ! », le littéral de chaîne est "Hello, World!" tandis que la valeur de la chaîne est Hello, World! sans les guillemets. La valeur de la chaîne est ce que nous voyons comme sortie dans une fenêtre de terminal lorsque nous exécutons un programme Python.
Mais certaines valeurs de chaîne peuvent devoir inclure des guillemets, comme lorsque nous citons une source. Parce que les littéraux de chaîne et les valeurs de chaîne ne sont pas équivalents, il est souvent nécessaire d'ajouter un formatage supplémentaire aux littéraux de chaîne pour s'assurer que les valeurs de chaîne s'affichent de la manière dont nous le souhaitons.
##Guillemets et apostrophes
Parce que nous pouvons utiliser des guillemets simples ou doubles dans Python, nous sommes également capables d'intégrer des guillemets dans une chaîne en utilisant des guillemets doubles dans une chaîne entourée de guillemets simples :
Info : Pour suivre l'exemple de code dans ce tutoriel, ouvrez un shell interactif Python sur votre système local en exécutant la commande python3. Ensuite, vous pouvez copier, coller ou modifier les exemples en les ajoutant après l'invite >>>.
'Sammy says, "Hello!"'Ou, pour utiliser un apostrophe possessif dans une chaîne entourée de guillemets doubles :
"Sammy's balloon is red."De la manière dont nous combinons les guillemets simples et doubles, nous pouvons contrôler l'affichage des guillemets et des apostrophes dans nos chaînes.
##Lignes Multiples
Imprimer des chaînes sur plusieurs lignes peut rendre le texte plus lisible pour les humains. Avec plusieurs lignes, les chaînes peuvent être regroupées en un texte clair et ordonné, formaté comme une lettre, ou utilisées pour conserver les sauts de ligne d'un poème ou des paroles de chanson.
Pour créer des chaînes qui s'étendent sur plusieurs lignes, des triples guillemets simples ''' ou des triples guillemets doubles """ sont utilisés pour entourer la chaîne.
'''
This string is on
multiple lines
within three single
quotes on either side.
'''"""
This string is on
multiple lines
within three double
quotes on either side.
"""Avec des triples guillemets, vous pouvez imprimer des chaînes sur plusieurs lignes pour rendre le texte, en particulier un texte long, plus facile à lire.
##Caractères d'échappement
Une autre façon de formater des chaînes est d'utiliser un caractère d'échappement. Les caractères d'échappement commencent tous par la touche de barre oblique inversée ( \ ) combinée à un autre caractère dans une chaîne pour formater cette chaîne d'une manière particulière.
Voici une liste de plusieurs des caractères d'échappement courants :
| Caractère d'échappement | Comment il se formate |
|---|---|
| \ | Nouvelle ligne dans une chaîne multi-lignes |
| \\ | Barre oblique inversée |
| ' | Apostrophe ou guillemet simple |
| " | Guillemet double |
| \n | Saut de ligne |
| \t | Tabulation (indentation horizontale) |
Utilisons un caractère d’échappement pour ajouter les guillemets à l’exemple sur les guillemets ci-dessus, mais cette fois nous utiliserons des guillemets doubles :
print("Sammy says, \"Hello!\"")Sammy says, "Hello!"En utilisant le caractère d'échappement \", nous pouvons utiliser des guillemets pour entourer une chaîne qui inclut du texte cité entre des guillemets.
De même, nous pouvons utiliser le caractère d'échappement \' pour ajouter une apostrophe dans une chaîne de caractères qui est entourée de guillemets simples :
print('Sammy\'s balloon is red.')Sammy's balloon is red.
Parce que nous utilisons maintenant le caractère d'échappement, nous pouvons avoir une apostrophe à l'intérieur d'une chaîne qui utilise des guillemets simples.
Lorsque nous utilisons des triples guillemets comme nous l'avons fait ci-dessus, nous verrons qu'il y a un espace en haut et en bas lorsque nous imprimons la chaîne. Nous pouvons supprimer ces espaces en utilisant la touche d'échappement \ au début de notre chaîne et de nouveau à la fin de la chaîne tout en gardant le texte dans le programme très lisible.
"""\
This multi-line string
has no space at the
top or the bottom
when it prints.\
"""De la même manière, nous pouvons utiliser le caractère d'échappement \n pour sauter des lignes sans appuyer sur la touche enter ou return :
print("This string\nspans multiple\nlines.")This string
spans multiple
lines.Nous pouvons également combiner des caractères d'échappement. Imprimons une chaîne sur plusieurs lignes et incluons des tabulations pour une liste à puces, par exemple :
print("1.\tShark\n2.\tShrimp\n10.\tSquid")1. Shark
2. Shrimp
10. SquidL'indentation horizontale fournie avec le caractère d'échappement \t assure l'alignement dans la deuxième colonne dans l'exemple ci-dessus, rendant la sortie extrêmement lisible pour les humains.
Bien que le caractère d'échappement \n fonctionne bien pour les littéraux de chaîne courts, il est important de s'assurer que le code source est également lisible pour les humains. Dans le cas des chaînes longues, l'approche des triples guillemets pour les chaînes multi-lignes est souvent préférable.
Les caractères d'échappement sont utilisés pour ajouter un formatage supplémentaire aux chaînes qui peuvent être difficiles ou impossibles à réaliser. Sans caractères d'échappement, comment construiriez-vous la chaîne Sammy dit, "La couleur du ballon est rouge." ?
##Chaînes brutes
Et si nous ne voulons pas de formatage spécial dans nos chaînes ? Par exemple, nous pouvons avoir besoin de comparer ou d’évaluer des chaînes de code informatique qui utilisent le backslash intentionnellement, donc nous ne voudrons pas que Python l’utilise comme caractère d’échappement.
Une chaîne brute indique à Python d'ignorer toute mise en forme dans une chaîne, y compris les caractères d'échappement.
Nous créons une chaîne brute en mettant un r devant la chaîne, juste avant le guillemet d'ouverture :
print(r"Sammy says,\"The balloon\'s color is red.\"")Sammy says,\"The balloon\'s color is red.\"En construisant une chaîne brute en utilisant r devant une chaîne donnée, nous pouvons conserver les barres obliques inverses et d'autres caractères qui sont utilisés comme caractères d'échappement.
##Conclusion
Ce tutoriel a présenté plusieurs façons de formater le texte en Python 3 en travaillant avec des chaînes de caractères. En utilisant des techniques telles que les caractères d'échappement ou les chaînes brutes, nous sommes capables de nous assurer que les chaînes de notre programme sont affichées correctement à l'écran afin que l'utilisateur final puisse lire facilement tout le texte de sortie.
Continuez à en apprendre davantage sur les chaînes en consultant les tutoriels suivants :
- Une introduction aux fonctions de chaînes
- Comment indexer et découper des chaînes
- Comment utiliser les formateurs de chaînes