2016-10-08 4 views
1

Ich versuche, ein einfaches Diagramm wie Ausgabe zu machen. Hier sind Zeichenfolgen, die ich angezeigt werden soll:Ungültiger Formatbezeichner für Tausende Platz

a = "name", b = "10000.00", c = "code", d = "45.60", e = "30.00"

print("{0:20}${1:,20}{2:20}${3:,20}${4:,<5}".format(a,b,c,d,e),file=outfile) 

I Setzen Sie ",", um Tausende in jedem Formatspezifizierer anzugeben, in dem sie als Währung ausgegeben werden sollen. Es meldet den Fehler:

print("{0:20}${1:,20}{2:20}${3:20}${4:<5}".format(a,b,c,d,e),file=outfile) 
ValueError: Invalid format specifier 

Was habe ich falsch gemacht?

+2

ist es möglich, Sie bedeuten '.' wo Sie' verwenden, '? –

Antwort

0

Wie die docs, Breite muss nach Komma gehen. Außerdem hat Ihre b Variable eine Zahl sein (und nicht um eine Zeichenfolge, wie in Ihrem MWE):

>>> x = 10000.0 
>>> '{0:20,}'.format(x) 
'   10,000.0' 
+0

genau wie du gesagt hast, setze ich ein Komma nach Breite "$ {1:20,}". jetzt Fehlermeldung ValueError: Kann ',' nicht mit 's' angeben. – heej

+0

Wie in der Antwort angegeben, muss Ihre Variable eine Zahl sein (entweder int oder float), damit das Komma funktioniert. –

+0

Ich weiß es zu schätzen – heej