Recherche de site Web

Comment formater du texte en Python 3


###Introduction

Étant donné que les chaînes sont souvent constituées de texte écrit, il existe de nombreux cas où nous pouvons vouloir avoir un meilleur contrôle 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 allons passer en revue certaines des manières dont nous pouvons travailler avec les chaînes de caractères Python pour nous assurer que tout le texte de sortie est correctement formaté.

##Conditions préalables

Vous devez avoir Python 3 installé et un environnement de programmation configuré sur votre ordinateur ou serveur. Si vous n'avez pas d'environnement de programmation configuré, vous pouvez consulter les 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.).

##Literal Strings

Différencions d'abord entre 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 « Bonjour, le monde ! », la chaîne littérale est « Bonjour, le monde ! » tandis que la valeur de la chaîne est Bonjour, le monde ! 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, par exemple 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 sont affichées de la manière dont nous le souhaitons.

##Citations et apostrophes

Parce que nous pouvons utiliser des guillemets simples ou des guillemets doubles dans Python, nous sommes également capables d'incorporer des guillemets dans une chaîne en utilisant des guillemets doubles à l'intérieur d'une chaîne entourée de guillemets simples :

Info : Pour suivre l'exemple de code dans ce tutoriel, ouvrez une interface Python interactive sur votre système local en exécutant la commande python3. Vous pouvez ensuite 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 de caractères entourée de guillemets :

"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 propre et ordonné, formaté comme une lettre, ou utilisées pour maintenir les sauts de ligne d'un poème ou des paroles de chansons.

Pour créer des chaînes qui s'étendent sur plusieurs lignes, des triple guillemets simples ''' ou des triple guillemets doubles """ sont utilisés pour encadrer 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 les textes longs, 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 avec un autre caractère dans une chaîne pour formater la chaîne donnée d'une certaine manière.

Voici une liste de plusieurs des caractères d'échappement courants :

Caractère d'échappementComment cela formate
\Nouvelle ligne dans une chaîne multi-lignes
\Barre oblique inversée
'Apostrophe ou guillemet simple
"Guillemets
\nSaut de ligne
\tOnglet (indentation horizontale)

Utilisons un caractère d'échappement pour ajouter les guillemets à l'exemple de guillemets ci-dessus, mais cette fois nous allons utiliser des guillemets doubles :

print("Sammy says, \"Hello!\"")
Sammy says, "Hello!"

En utilisant le caractère d'échappement \", nous pouvons utiliser des guillemets doubles pour entourer une chaîne qui inclut du texte cité entre des guillemets doubles.

De même, nous pouvons utiliser le caractère d'échappement \' pour ajouter une apostrophe dans une chaîne qui est encadrée par des 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 guillemets triples 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 clé d'échappement \ en haut de notre chaîne et encore à 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 même, 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 de plusieurs lignes et incluons un espacement par tabulation pour une liste numérotée, par exemple :

print("1.\tShark\n2.\tShrimp\n10.\tSquid")
1.	Shark
2.	Shrimp
10.	Squid

L'indentation horizontale fournie avec le caractère d'évasion \t assure un alignement dans la deuxième colonne de 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 par les humains. Dans le cas de chaînes longues, l'approche des guillemets triples 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 les caractères d'échappement, comment construiriez-vous la chaîne Sammy dit, "La couleur du ballon est rouge."?

##Chaînes brutes

Que faire si nous ne voulons pas de formatage spécial dans nos chaînes ? Par exemple, nous devrons peut-être comparer ou évaluer des chaînes de code informatique qui utilisent le caractère de barre oblique inversée intentionnellement, donc nous ne voulons pas que Python l'utilise comme caractère d'échappement.

Une chaîne brute indique à Python d'ignorer tous les formats à l'intérieur d'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 utilisés comme caractères d'échappement.

##Conclusion

Ce tutoriel a abordé plusieurs façons de formater du 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 pouvons nous assurer que les chaînes de notre programme s'affichent correctement à l'écran afin que l'utilisateur final puisse facilement lire tout le texte de sortie.

Continuez à en apprendre davantage sur les chaînes en consultant les tutoriels suivants :

  • Une introduction aux fonctions de chaîne
  • Comment indexer et découper des chaînes
  • Comment utiliser les formatteurs de chaîne