Comment formater les chaînes de caractères

2022-10-04 01:15:28  mardi  8530 mots  

Python vous permet de formater vos chaînes de caractères de multiples manières. Le rôle premier du formatage consiste à présenter les chaînes pour qu’elles soient à la fois plaisantes et faciles à comprendre. Cela ne signifie pas dans ce cas ajouter des effets particuliers, ou afficher de jolis caractères, mais concerne uniquement le mode de présentation des données, par exemple des valeurs numériques ou monétaires.

La plupart des options de formatage font appel à la fonction format (). Vous créez des spécifications de formatage à l’intérieur de la chaîne, puis vous utilisez format () pour ajouter des données à celle-ci. Une spécification peut être très simple. Exemple : deux crochets ({}) forment un conteneur 容器 pour y saisir des données. Ce conteneur peut servir à créer des effets spéciaux. Ainsi, {0} contiendrait le premier élément de donnée d’une chaîne. Lorsque les éléments de donnée sont numérotés, vous pouvez même les répéter pour qu’ils apparaissent plusieurs fois dans la chaîne.

La spécification de formatage est précédée d’un deux-points. Si vous voulez définir un formatage simple, les crochets ne contiennent que ce deux-points et l’option voulue. Par exemple, { :f} affichera un nombre en numérotation fixe. Si vous voulez numéroter les entrées, la spécification {0 :f} fera la même chose, mais pour le premier élément. Les spécifications de formatage suivent ce format, les mots en italiques étant bien entendu à remplacer par les valeurs voulues :

[[remplissage] alignement] [signe][#][0][largeur][,][précision][type]

Les spécifications 规范 que vous trouverez à l’adresse https://docs.python.org/3/library/string.html fournissent des détails plus approfondis, mais voici un aperçu de ce que signifient ces différentes entrées :

  • Remplissage : Définit le caractère utilisé lorsque le remplissage ne suffit pas à remplir l’espace assigné.
  • Alignement : Spécifie la manière dont les données sont alignées à l’intérieur de l’espace d’affichage. Vous pouvez utiliser ces différents modes :
    • • < : Alignement à gauche
    • • > : Alignement à droite
    • • ^ : Centré
    • • = : Justifié
  • Signe : Détermine l’utilisation du signe lors de la sortie :
    • • + : Les nombres positifs ont un signe plus, et les nombres négatifs un signe moins.
    • • - : Les nombres négatifs ont un signe moins.
    • • <espace> : Les nombres positifs sont précédés d’un espace et les nombres négatifs ont un signe moins.
  • # : Spécifie que la sortie devrait utiliser le format d’affichage alternatif pour les nombres. Par exemple, les valeurs hexadécimales prendront le préfixe 0x.
  • 0 : Spécifie que la sortie doit tenir compte du signe, et que la valeur doit être complétée par des zéros pour fournir une sortie cohérente.
  • Largeur : Détermine la largeur totale du champ de donnée (même si celle-ci n’occupe pas tout cet espace).
  • , : Spécifie que la valeur numérique doit avoir une virgule comme séparateur des milliers.
  • .précision : Détermine le nombre de chiffres après le point décimal.
  • Type : Spécifie le type de la sortie, même si l’entrée ne correspond pas. Les types sont répartis en trois groupes :
    • Chaîne : Utilisez un s ou rien pour spécifier une chaîne.
    • Entier : Les types entiers sont les suivants : b (binaire), c (caractère), d (décimal), o (octal), x (hexadécimal avec des lettres en minuscules), X (hexadécimal avec des lettres en majuscules) et n (valeur décimale sensible à la localisation géographique utilisant le caractère approprié comme séparateur des milliers).
    • Virgule flottante : Les types en virgule flottante sont les suivants : e (exposant utilisant une lettre e minuscule), E (exposant utilisant une lettre E majuscule), f (valeur décimale fixée en minuscule), F (valeur décimale fixée en majuscule), g (format général en minuscule), G (format général en majuscule), n (valeur sensible à la localisation géographique utilisant le caractère approprié comme séparateur décimal et des milliers), et % (pourcentage).

Les éléments qui spécifient le formatage doivent apparaître dans l’ordre indiqué, sinon Python ne pourra pas les traiter correctement. Dans ce cas, il affichera un message d’erreur au lieu du formatage spécifié. Les étapes qui suivent illustrent cette technique. Vous pouvez également les retrouver dans le fichier téléchargeable.

  1. Ouvrez une fenêtre de fichier Python.
    Vous pouvez par exemple lancer Python en mode Shell, puis choisir dans le menu File la commande New File.
  2. Tapez le code suivant en appuyant sur Entrée à la fin de chaque ligne :
    Formatted = "{:d}"
    print(Formatted.format(7000))
    
    Formatted = "{:,d}"
    print(Formatted.format(7000))
    
    Formatted = "{:^15,d}"
    print(Formatted.format(7000))
    
    Formatted = "{:*^15,d}"
    print(Formatted.format(7000))
    
    Formatted = "{:*^15.2f}"
    print(Formatted.format(7000))
    
    Formatted = "{:*>15X}"
    print(Formatted.format(7000))
    
    Formatted = "{:*<#15x}"
    print(Formatted.format(7000))
    
    Formatted = "Une {1} {0} et un {2} {0}."
    print(Formatted.format("bleu(e)", "voiture", "camion"))
    Cet exemple débute par un champ formaté en tant que valeur décimale. Il ajoute ensuite une virgule décimale. L’étape qui suit consiste à rendre le champ plus large qu’il n’est besoin pour contenir la donnée, et à centrer celle-ci à l’intérieur de ce champ. Finalement, un astérisque à la sortie de manière à remplir ce champ.
    Bien entendu, l’exemple propose d’autres types de données. Les étapes suivantes affichent la même donnée dans un format préfixé, ainsi qu’en mode hexadécimal avec représentation en majuscules ou en minuscules. Dans le premier cas, la sortie est alignée à droite, et à gauche dans le second.
    Enfin, l’exemple montre comment tirer profit de champs numérotés à votre avantage. Dans ce cas, des valeurs préfixées sont ensuite remplacées par des chaînes personnalisées.
  3. Choisissez la commande Run Module dans le menu Run.
    Une fenêtre Python en mode Shell va s’ouvrir. L’application affiche les données selon différentes formes (voir la Figure).

    Figure : Le formatage vous permet de présenter vos données comme vous le voulez.

Commentaire