Comment formater du texte en Python 3

introduction

Comme les chaînes sont souvent composées de texte écrit, il peut arriver que nous souhaitions avoir un meilleur contrôle sur l’apparence des chaînes pour les rendre plus lisibles pour les humains par le biais de la ponctuation, des sauts de ligne et de l’indentation.

Dans ce didacticiel, nous allons examiner certaines des manières dont nous pouvons utiliser les chaînes Python pour nous assurer que tout le texte de sortie est correctement formaté.

Littéraux de chaîne

Commençons par distinguer un * littéral de chaîne * et une * valeur de chaîne *. Un littéral de chaîne correspond à ce que nous voyons dans le code source d’un programme informatique, y compris les guillemets. Une valeur de chaîne correspond à 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 chaîne est + Hello, World! + Sans les guillemets. La valeur de 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 avoir besoin d’inclure des guillemets, comme lorsque nous citons une source. Les littéraux de chaîne et les valeurs de chaîne n’étant pas équivalents, il est souvent nécessaire d’ajouter une mise en forme supplémentaire aux littéraux de chaîne pour garantir que les valeurs de chaîne s’affichent comme prévu.

Citations et Apostrophes

Comme nous pouvons utiliser des guillemets simples ou des guillemets doubles dans Python, il est simple d’incorporer des guillemets dans une chaîne en utilisant des guillemets doubles dans une chaîne entourée de guillemets simples:

'Sammy says, "Hello!"'

Ou, pour utiliser une apostrophe possessive dans une chaîne entourée de guillemets:

"Sammy's balloon is red."

En combinant des guillemets simples et doubles, nous pouvons contrôler l’affichage des guillemets et des apostrophes dans nos chaînes.

Lignes multiples

L’impression de chaînes sur plusieurs lignes peut rendre le texte plus lisible par les humains. Avec plusieurs lignes, les chaînes peuvent être regroupées dans un texte propre et ordonné, formatées sous forme de lettre ou utilisées pour conserver les sauts de ligne d’un poème ou des paroles d’une chanson.

Pour créer des chaînes qui couvrent plusieurs lignes, les guillemets simples «+ '' '» ou les 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 les guillemets triples, vous pouvez imprimer des chaînes sur plusieurs lignes pour faciliter la lecture du texte, particulièrement celui qui est long.

Personnages d’échappement

Un autre moyen de formater des chaînes consiste à utiliser un * caractère d’échappement *. Les caractères d’échappement commencent tous par la barre oblique inversée (+ \ +) combinée à un autre caractère d’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 communs:

Escape character How it formats

\

New line in a multi-line string

\

Backslash

'

Apostrophe or single quote

"

Double quote

\n

Line break

\t

Tab (horizontal indentation)

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

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

En utilisant le caractère d’échappement `+ \" + `, nous pouvons utiliser des guillemets doubles pour entourer une chaîne incluant du texte entre guillemets doubles.

De même, nous pouvons utiliser le caractère d’échappement + \ '+ pour ajouter une apostrophe dans une chaîne entre guillemets simples:

print('Sammy\'s balloon is red.')
OutputSammy's balloon is red.

Puisque nous utilisons maintenant le caractère d’échappement, nous pouvons avoir une apostrophe dans une chaîne qui utilise des guillemets simples.

Lorsque nous utilisons les triples guillemets comme 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 + \ + en haut de notre chaîne et de nouveau à la fin de la chaîne, tout en maintenant 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 rompre les lignes sans appuyer sur la touche + enter ou` + return`:

print("This string\nspans multiple\nlines.")
OutputThis string
spans multiple
lines.

Nous pouvons également combiner des personnages d’échappement. Imprimons une chaîne de plusieurs lignes et incluons l’espacement des tabulations pour une liste détaillée, par exemple:

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

L’indentation horizontale fournie avec le caractère d’échappement + \ t + assure l’alignement dans la deuxième colonne de l’exemple ci-dessus, ce qui rend la sortie extrêmement lisible par l’homme.

Bien que le caractère d’échappement + \ n + fonctionne bien pour les littéraux de chaîne courte, il est important de s’assurer que le code source est également lisible par l’homme. Dans le cas de chaînes longues, l’approche de la citation triple pour les chaînes multilignes est souvent préférable.

Les caractères d’échappement sont utilisés pour ajouter une mise en forme supplémentaire aux chaînes qui peut être difficile voire impossible à obtenir. Sans caractères d’échappement, comment construiriez-vous la chaîne + Sammy dit:" La couleur du ballon est rouge. "+?

Cordes brutes

Que faire si nous ne voulons pas de formatage spécial dans nos chaînes? Par exemple, il se peut que nous devions comparer ou évaluer des chaînes de code informatique qui utilisent la barre oblique inverse à dessein; nous ne voulons donc pas que Python l’utilise comme caractère d’échappement.

Une * chaîne brute * indique à Python d’ignorer toute la mise en forme d’une chaîne, y compris les caractères d’échappement.

Nous créons une chaîne brute en plaçant un + r + devant la chaîne, juste avant le guillemet de début:

print(r"Sammy says,\"The balloon\'s color is red.\"")
OutputSammy 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 autres caractères utilisés comme caractères d’échappement.

Conclusion

Ce didacticiel a présenté plusieurs manières de formater du texte dans Python 3 en utilisant des chaînes. En utilisant des techniques telles que les caractères d’échappement ou les chaînes brutes, nous sommes en mesure de nous assurer que les chaînes de notre programme sont restituées correctement à l’écran, de sorte 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: