2010-08-30 2 views
19

Ich versuche, eine Zahl mit führenden und abschließenden Nullen darzustellen, so dass die Gesamtbreite 7 einschließlich des Dezimalpunkts beträgt. Zum Beispiel möchte ich "5" als "005.000" darstellen. Es scheint, dass die Formatierung von Strings mir das eine oder das andere erlaubt, aber nicht beides. Hier ist die Ausgabe ich in IPython illustriert mein Problem:Wie verwende ich die Zeichenfolgenformatierung, um BEIDE führende Nullen und die Genauigkeit von 3 anzuzeigen?

In [1]: '%.3f'%5 
Out[1]: '5.000' 

In [2]: '%03.f'%5 
Out[2]: '005' 

In [3]: '%03.3f'%5 
Out[3]: '5.000' 

Linie 1 und 2 tun genau das, was ich erwarten würde. Zeile 3 ignoriert einfach die Tatsache, dass ich führende Nullen haben möchte. Irgendwelche Ideen? Vielen Dank!

Antwort

36

Die erste Nummer ist Gesamt Anzahl der Ziffern, einschließlich Dezimalpunkt.

>>> '%07.3f' % 5 
'005.000' 
+0

Macht Sinn, danke! – cat

+0

Dezimalpunkt ist eine Ziffer? –

+7

Dies zählt auch das Minuszeichen! bleh, ungewöhnlich schäbig für Python IMHO – meawoppl

6

[Edit: Gah, erneut geschlagen]

'%07.3F'%5 

Die erste Zahl ist die Gesamtfeldbreite.