2016-10-08 89 views
1

我正在试图制作一个简单的图表,如输出。下面是我要显示的字符串:千位的格式说明符无效

一个= “姓名”,B = “10000.00”,C = “代码”,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) 

我在每个格式说明符中输入“,”来表示千位,我希望它们以货币形式输出。它报告错误:

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

我做错了什么?

+2

是有可能你的意思'.'在您使用''? –

回答

0

根据docs,宽度必须在逗号后面。此外,您b变量必须是数字(而不是一个字符串,如您MWE):

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

就像你说的,我在宽度“$ {1:20,}”后面加逗号。现在错误说ValueError:不能用's'指定','。 – heej

+0

正如答案中所述,您的变量必须是一个数字(int或float),以使逗号可以工作 –

+0

我欣赏它 – heej