格式说明符显示零(0)为空字符串
在 格式规范 中,有没有选项可以把零值显示为空白,而其他值则使用格式化显示呢?
>>> from decimal import Decimal
>>> '{:+010,.2f}'.format(Decimal('1234.56'))
'+01,234.56'
>>> '{:???f}'.format(Decimal(0))
''
>>>
更新:
我需要的效果和这里的一样:
http://msdn.microsoft.com/en-us/library/0c899ak8.aspx#SectionSeparator
如果Python的标准库里没有这个功能,请确认一下,我会把这个作为答案接受。
6 个回答
0
我们可以定义一个函数:
def format_cond(val,fmt,cond=bool,otherwise=''):
return format(val, fmt) if cond(val) else otherwise
0
Python没有一种可以分隔不同类型数字的功能,所以你不能在同一个字符串里对正数、负数和零使用不同的格式。你需要使用不同的格式字符串来处理它们。
8
不,目前你不能通过Python的格式说明来实现这个功能。可以使用条件表达式来代替。比如:
print(format(a, '+010,.2f') if a else "")