Format Python ()

La méthode intégrée format () renvoie une représentation formatée de la valeur donnée contrôlée par le spécificateur de format.

La format()fonction est similaire à la méthode de format String. En interne, les deux méthodes appellent la __format__()méthode d'un objet.

Alors que la format()fonction intégrée est une implémentation de bas niveau pour la mise en forme d'un objet en __format__()interne, string format()est une implémentation de niveau supérieur capable d'effectuer également des opérations de mise en forme complexes sur plusieurs chaînes d'objets.

La syntaxe de format () est:

 format (valeur (, format_spec))

Paramètres de format ()

La format()fonction prend deux paramètres:

  • valeur - valeur qui doit être formatée
  • format_spec - La spécification sur la façon dont la valeur doit être formatée.

Le spécificateur de format peut être au format:

((fill) align) (sign) (#) (0) (width) (,) (. precision) (type) où, les options sont fill :: = any character align :: = "" | "=" | "^" signe :: = "+" | "-" | "" largeur :: = précision entière :: = type entier :: = "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"

Consultez ces liens pour en savoir plus sur les types de format et l'alignement.

Valeur renvoyée par format ()

La format()fonction renvoie une représentation formatée d'une valeur donnée spécifiée par le spécificateur de format.

Exemple 1: Formatage des nombres avec format ()

 # d, f and b are type # integer print(format(123, "d")) # float arguments print(format(123.4567898, "f")) # binary format print(format(12, "b"))

Production

 123 123.456790 1100

Exemple 2: mise en forme des nombres avec remplissage, alignement, signe, largeur, précision et type

 # integer print(format(1234, "*>+7,d")) # float number print(format(123.4567, "^-09.3f"))

Production

 * + 1 234 0123,4570

Ici, lors du formatage de l'entier 1234, nous avons spécifié le spécificateur de formatage *>+7,d. Comprenons chaque option:

  • * - C'est le caractère de remplissage qui remplit les espaces vides après le formatage
  • > - C'est la bonne option d'alignement qui aligne la chaîne de sortie vers la droite
  • + - C'est l'option signe qui force la signature du numéro (avec un signe à sa gauche)
  • 7 - C'est l'option de largeur qui force le nombre à prendre une largeur minimale de 7, les autres espaces seront remplis par le caractère de remplissage
  • , - C'est l'opérateur des milliers qui place une virgule entre tous les milliers.
  • d - C'est l'option de type qui spécifie que le nombre est un entier.

Lors du formatage du nombre à virgule flottante 123.4567, nous avons spécifié le spécificateur de format ^-09.3f. Ceux-ci sont:

  • ^ - C'est l'option d'alignement central qui aligne la chaîne de sortie au centre de l'espace restant
  • - - C'est l'option de signe qui force uniquement les nombres négatifs à afficher le signe
  • 0 - C'est le personnage qui se place à la place des espaces vides.
  • 9 - C'est l'option de largeur qui définit la largeur minimale du nombre à 9 (y compris le point décimal, les milliers de virgule et le signe)
  • .3 - C'est l'opérateur de précision qui définit la précision du nombre flottant donné à 3 places
  • f - C'est l'option de type qui spécifie que le nombre est un flottant.

Exemple 3: Utilisation de format () en remplaçant __format __ ()

 # custom __format__() method class Person: def __format__(self, format): if(format == 'age'): return '23' return 'None' print(format(Person(), "age"))

Production

 23

Ici, nous avons remplacé la __format__()méthode de la classe Person.

Il accepte maintenant un formatparamètre et renvoie 23 s'il est égal à 'age'. Si aucun format n'est spécifié, Noneest renvoyé.

La format()fonction s'exécute en interne Person().__format__("age")pour renvoyer 23.

Articles intéressants...