Construire une chaîne de caractères formatée

Syntaxe de la fonction

La commande str.format() permet de construire une chaîne de caractère dépendante du contenu de certaines variables. Cette méthode s'applique à une chaîne de caractère qui sert de format, et les arguments sont les variables appelées dans le format. Dans l'exemple ci-dessous, la variable nom contient la chaîne de caractères "toto". Le format "Je m'appelle {0}" fait appel à un argument à insérer (le premier argument, notée {0}), et qui sera remplacée par le contenu de la variable nom.

nom="toto"
"je m'appelle {0}".format(nom)

Pour finalement former la phrase : "Je m'appelle toto".

Il peut y avoir plusieurs variables. Lorsque les variables sont simples, la fonction conduit à une phrase comme par exemple :

T=10
temps="pluvieux"
"il fait {0:3.0f} degres et le temps est {1:s}.".format(T,temps)

conduit à la phrase il fait 10 degres et le temps est pluvieux. Les symboles {0:3.0f} et {1!s} sont remplacés par les variables 1 et 2 (indices 0 et 1), au format 3.0f pour le nombre et s pour la chaîne de caractères (voir la description des formats ci-après).

Pour la mise en forme de tableau, l'opération de formatage doit être répétée à chaque ligne, par une boucle for tel que dans l'exemple suivant. La fonction zip permet de grouper les tableaux.

x1=[1,2,3,4]
x2=[5,6,7,8]
x3=[9,10,11,12]
for xx,yy,zz in zip(x1,x2,x3):
    print("{:f} ; {:f} ; {:f}".format(xx,yy,zz))

La boucle renvoie le résultat suivant :

1.000000 ; 5.000000 ; 9.000000
2.000000 ; 6.000000 ; 10.000000
3.000000 ; 7.000000 ; 11.000000
4.000000 ; 8.000000 ; 12.000000

Description des types de formats

Les explications ci-dessous n'ont pas vocation à se substituer à la documentation (plus complète) mais permettent de s'initier rapidement aux cas les plus fréquemment rencontrés.

Le format peut contenir toute chaine de caractère et des balises {} permettant d'insérer les arguments de la fonction format. Si rien n'est spécifié, les appels successifs de balises insèrent les arguments dans l'ordre. Pour préciser, {0}, {1}, {2}, etc font respectivement appel aux premier, deuxième, troisième argument, etc.

Le caractère ":" permet de spécifier le format de conversion. S'il est absent, Python fait au mieux, mais il est possible d'imposer précisement le format d'affichage avec la syntaxe suivante.

Entiers

Flottants

Chaînes de caractères