format specification中是否有选项将零值显示为空白,否则使用格式?
>>> 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在标准库中没有它,请确认这一点,我将接受它作为答案。
答案 0 :(得分:7)
不,您目前无法通过Python格式规范来实现。改为使用条件表达式。例如:
print(format(a, '+010,.2f') if a else "")
答案 1 :(得分:0)
format
做了很多事情,但这不是它的设计目标。还有一个非常简单的解决方案:
if a == 0:
print("")
else:
print(format(a, '+010,.2f'))
答案 2 :(得分:0)
if a:
print(...)
答案 3 :(得分:0)
如何定义函数:
def format_cond(val,fmt,cond=bool,otherwise=''):
return format(val, fmt) if cond(val) else otherwise
答案 4 :(得分:0)
Python没有分区分隔符功能,因此您可以在同一个字符串中使用不同的正数,负数或零数字格式。你必须使用单独的格式字符串。