Comment formater un nombre flottant à une largeur fixe avec les exigences suivantes:
- Zéro en tête si n <1
- Ajouter des zéros décimaux de fin pour remplir une largeur fixe
- Tronquer les chiffres décimaux au-delà de la largeur fixe
- Aligner tous les points décimaux
Par exemple:
% formatter something like '{:06}'
numbers = [23.23, 0.123334987, 1, 4.223, 9887.2]
for number in numbers:
print formatter.format(number)
La sortie serait comme
23.2300
0.1233
1.0000
4.2230
9887.2000
python
string
numbers
number-formatting
hobbes3
la source
la source
10.4
signifie une largeur de 10 caractères et une précision de 4 décimales.10
est la largeur minimale du champ, c'est-à-dire la longueur minimale de la chaîne imprimée. Les nombres sont par défaut alignés à droite et remplis d'espaces - voir la documentation pour plus de détails.("%0.4f" % x).rjust(10)
"%10.4f" % x
. Dans Python 2.6, vous pouvez également utiliser"{0:10.4f}".format(x)
.Cela fait quelques années que cela n'a pas été répondu, mais à partir de Python 3.6 ( PEP498 ), vous pouvez utiliser le nouveau
f-strings
:Tirages:
la source
En python3, les travaux suivants:
la source
%
formatage est désormais la méthode de formatage la plus ancienne. Pour plusieurs raisons, l'utilisation destr.format
ouf-strings
est préférable à%
. Auparavant, alors que ce n'était que le casstr.format
, les gens avaient des raisons mais ontf-strings
corrigé ce trou. formater des documents en mini-langage , des exemples str.format à partir de documents et des exemples de littéraux de chaîne f dans des documentsVoir la syntaxe de chaîne au format Python 3.x :
la source
Vous pouvez également laisser un pad avec des zéros. Par exemple, si vous voulez
number
avoir une longueur de 9 caractères, complétez avec des zéros à gauche, utilisez:print('{:09.3f}'.format(number))
Ainsi, si
number = 4.656
la sortie est:00004.656
Pour votre exemple, la sortie ressemblera à ceci:
impressions:
Un exemple où cela peut être utile est lorsque vous souhaitez répertorier correctement les noms de fichiers par ordre alphabétique. J'ai remarqué dans certains systèmes Linux, le nombre est: 1,10,11, .. 2,20,21, ...
Ainsi, si vous souhaitez appliquer l'ordre numérique nécessaire dans les noms de fichiers, vous devez laisser le pavé avec le nombre approprié de zéros.
la source
En Python 3.
6.1f
signifie après que les points 1 chiffres s'affichent si vous imprimez 2 chiffres après les points, vous ne devez imprimer%6.2f
que%6.3f
3 chiffres après le point.la source
J'avais besoin de quelque chose de similaire pour les tableaux. Cela m'a aidé
la source