Comment formater les nombres en Python

Vous devez formater un nombre pour être affiché sur écran, contrôler le nombre de chiffres, l’alignement, l’inclusion d’un séparateur de milliers et autres détails.

Pour formater un nombre unique pour ‘envoyer à un fichier de sortie, utilisez la fonction intégrée format(). Par exemple:

>>> x = 1234.56789

>>> # Deux décimales après la virgule pour plus de précision
>>> format(x, '0.2f')
'1234.57'

>>> # Nombre de caractères justifiés à droite en 10 caractères, précision à un chiffre
>>> format(x, '>10.1f')
'    1234.6'

>>> # Justifié à gauche
>>> format(x, '<10.1f')
'1234.6    '

>>> # Centré 
>>> format(x, '^10.1f')
'  1234.6  '

>>> # Inclusion d'un séparateur de milliers
>>> format(x, ',')
'1,234.56789'
>>> format(x, '0,.1f')
'1,234.6'
>>>

Si vous voulez utiliser la notation exponentielle, changez le f en e ou E, selon le cas que vous voulez utiliser pour le spécificateur exponentiel. Par exemple:

>>> format(x, 'e')
'1.234568e+03'
>>> format(x, '0.2E')
'1.23E+03'
>>>

La forme générale de la partie entière et de la précision dans les deux cas est ‘[<>^]?PartieEntiere[,]?(.precision)?’ où PartieEntiere et precision sont des entiers et ? signifie des parties optionnelles.

Les mêmes codes de format sont également utilisés dans la méthode .format() des chaînes de caractères. Par exemple:

>>> 'La valeur est {:0,.2f}'.format(x)
'La valeur est 1,234.57'
>>>

Le formatage des nombres pour l’impression est généralement simple. La technique montrée fonctionne aussi bien pour les nombres à virgule flottante que pour les nombres décimaux dans le module decimal.

Lorsque le nombre de chiffres est limité, les valeurs sont arrondies selon les mêmes règles de la fonction round(). Par exemple:

>>> x
1234.56789
>>> format(x, '0.1f')
'1234.6'
>>> format(-x, '0.1f')
'-1234.6'
>>>

Le formatage des valeurs avec un séparateur de milliers n’est pas pris en compte. Si vous devez en tenir compte, vous pouvez rechercher des fonctions dans le module locale.

Vous pouvez également permuter les caractères de séparation en utilisant la méthode translate() des chaînes de caractères. Par exemple:

>>> separateurs = { ord('.'):',', ord(','):'.' }
>>> format(x, ',').translate(separateurs)
'1.234,56789'
>>>

Dans beaucoup de code Python, les nombres sont formatés en utilisant l’opérateur %. Par exemple:

>>> '%0.2f' % x
'1234.57'
>>> '%10.1f' % x
'    1234.6'
>>> '%-10.1f' % x
'1234.6    '
>>>

Ce formatage est encore acceptable, mais moins puissant que la méthode plus moderne format(). Par exemple, certaines fonctions (par exemple, l’ajout de milliers de séparateurs) ne sont pas prises en charge lorsque vous utilisez l’opérateur % pour formater les nombres.

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here