Participer au site avec un Tip
Rechercher
 

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 :

Classe « str » Python 3.12.1

Méthode builtins.str.format

Signature de la méthode format

 def format(self, *args, **kwargs)) -> str

Description

Permet de formater une chaîne de caractères en y injectant les données passées en paramètres. Les zones d'injections (placeholder en anglais) sont matérialisées par une paire d'accolades. Il faut néanmoins noter que plusieurs variations de la syntaxe sont supportées.

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%'
la syntaxe de formatage utilisée par la méthode 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]'
>>> 

help(str.format)

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ètres

ParamètreDescription
 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.

Valeur de retour

La valeur de retour est de type str.

Elle correspond à la chaîne de caractères formatée.

Exception

Exemple(s) de code

 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)
Exemple d'utilisation de la méthode format.

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 |
+-------------------------+-------------------------+-------------------------+
$> 

Voir aussi

Classe str
Méthode str.format_map