def format(self, *args, **kwargs)) -> str
Injection des paramètres dans l'ordre d'apparition des placeholders.
>>> "[{}/{}]".format(1, 3) '[1/3]'
Injection des paramètres dans les placeholders via un index positionnel.
>>> "[{1}/{0}]".format(1, 3) '[3/1]'
Injection des paramètres dans les placeholders via les noms des paramètres.
>>> "[{num}/{den}]".format(num=1, den=3) '[1/3]'
Il est aussi possible de spécifier un format pour chaque zone d'injection (placeholder). Le format du paramètre s'introduit par un caractère :
placé à l'intérieur des accolades. A la suite de ce caractère, on trouve la définition du format. Voici un tableau présentant les principales
possibilités.
Format | Description | Exemple | Résultat |
---|---|---|---|
Formatage de chaînes de caractères | |||
{:s} |
Formate une chaîne de caractères. | '{:s}'.format("James") |
'James' |
{:10s} |
Formate une chaîne en utilisant 10 caractères. Le texte est aligné par la gauche. |
'{:10s}'.format("James") |
'James ' |
{:<10s} |
Formate une chaîne en utilisant 10 caractères. Le texte est aligné par la gauche. |
'{:<10s}'.format("James") |
'James ' |
{:>10s} |
Formate une chaîne en utilisant 10 caractères. Le texte est aligné par la droite. |
'{:>10s}'.format("James") |
' James' |
{:c} |
Transforme une valeur entière en son caractère Unicode équivalent. | "{:c}".format(0x03c0) |
'π' |
Formatage de nombres entiers | |||
{:b} |
Formate un entier exprimé en base binaire. | '{:b}'.format(123) |
'1111011' |
{:d} |
Formate un entier exprimé en base décimale. | '{:d}'.format(123) |
'123' |
{:o} |
Formate un entier exprimé en base octale. | '{:o}'.format(123) |
'173' |
{:x} |
Formate un entier exprimé en base hexadécimale (et en minuscules). | '{:x}'.format(123) |
'7b' |
{:X} |
Formate un entier exprimé en base hexadécimale (et en majuscules). | '{:X}'.format(123) |
'7B' |
{:5d} |
Formate un entier (en base décimale) sur 5 caractères. Si le nombre est plus petit, les espaces sont ajoutés à gauche. | '{:5d}'.format(123) |
' 123' |
{:+5d} |
Formate un entier (en base décimale) sur 5 caractères avec le signe de la valeur. Si le nombre est plus petit, les espaces sont ajoutés à gauche. | '{:5d}'.format(123) |
' +123' |
{:05d} |
Formate un entier (en base décimale) sur 5 caractères. Si le nombre est plus petit, les caractères 0 sont ajoutés à gauche. | '{:05d}'.format(123) |
'00123' |
{:,d} |
Formate un entier (en base décimale) en utilisant la virgule comme séparateur de groupes. | "{:,d}".format(1_000_000) |
'1,000,000' |
{:_d} |
Formate un entier (en base décimale) en utilisant le caractère _ comme séparateur de groupes. | "{:_d}".format(1_000_000) |
'1_000_000' |
{:_X} |
Formate un entier (en base hexadécimale) en utilisant le caractère _ comme séparateur de groupes. | "{:_X}".format(0xFF00804E) |
'FF00_804E' |
Formatage de nombres décimaux (à virgule flottante). | |||
{:f} |
Formate un nombre décimal. | '{:f}'.format(math.pi) |
'3.141593' |
{:.2f} |
Formate un nombre décimal avec deux chiffres après la virgule. | '{:.2f}'.format(math.pi) |
'3.14' |
{:5.2f} |
Formate un nombre décimal sur 5 caractères au total et avec deux chiffres après la virgule. | '{:5.2f}'.format(math.pi) |
' 3.14' |
{:05.2f} |
Formate un nombre décimal sur 5 caractères au total et avec deux chiffres après la virgule. Si nécessaire, des 0 sont ajoutés à gauche. | '{:05.2f}'.format(math.pi) |
'03.14' |
{:e} |
Formate un nombre décimal en notation exponentielle. | '{:e}'.format(0.001) |
'1.000000e-03' |
{:E} |
Formate un nombre décimal en notation exponentielle (avec un E en majuscule). | '{:E}'.format(0.001) |
'1.000000E-03' |
{:g} |
Formate un nombre décimal avec la notation la plus appropriée. | '{:g}'.format(0.001) '{:g}'.format(0.0000001) '{:g}'.format(1) |
'0.001' '1e-07' '1' |
{:%} |
Formate un nombre décimal en pourcentage. | '{:%}'.format(0.45) |
'45.000000%' |
{:.2%} |
Formate un nombre décimal en pourcentage. | '{:.2%}'.format(0.45) |
'45.00%' |
str.format
est la même que celle utilisée avec les chaînes formatées (syntaxe f""
).
Ainsi, les deux expressions de formatage présentées ci-dessous sont strictement équivalentes.
>>> a = 1.234 >>> b = 4.567 >>> "[{:.2f}/{:.2f}]".format(a, b) '[1.23/4.57]' >>> f"[{a:.2f}/{b:.2f}]" '[1.23/4.57]' >>>
S.format(*args, **kwargs) -> str Return a formatted version of S, using substitutions from args and kwargs. The substitutions are identified by braces ('{' and '}').
Paramètre | Description |
---|---|
self : str |
La chaîne de caractères courante. Rappel : self est implicitement passée lors de l'appel de la méthode. |
args : tuple |
L'ensemble des paramètres passés à la méthode. |
La valeur de retour est de type str.
Elle correspond à la chaîne de caractères formatée.
ValueError :Une exception de ce type sera déclenchée si l'un des paramètres n'est pas compatible avec le format qui lui est associé.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#!/usr/bin/python3 # Une liste de données à afficher sur la console. spies = [ ["James", "Bond", "007@mi6.uk"], ["Jason", "Bourne", "treadstone@cia.us"], ["Ethan", "Hunt", "hunt@imf.us"] ] # Quelques variables préalables. line = "-" * 25 separator = "+{:s}+{:s}+{:s}+".format(line, line, line) # On affiche la liste. print(separator) print("| {:23s} | {:23s} | {:>23s} |".format("Prénom", "Nom", "Email")) print(separator) for spy in spies: print("| {:23s} | {:23s} | {:>23s} |".format(spy[0], spy[1], spy[2])) print(separator) |
Et voici les résultats produits par cet exemple.
$> python3 sample.py +-------------------------+-------------------------+-------------------------+ | Prénom | Nom | Email | +-------------------------+-------------------------+-------------------------+ | James | Bond | 007@mi6.uk | | Jason | Bourne | treadstone@cia.us | | Ethan | Hunt | hunt@imf.us | +-------------------------+-------------------------+-------------------------+ $>
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :