Есть ли опция в спецификации формата для отображения нулевых значений как пустых, в противном случае использовать формат?
>>> 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 его нет в стандартных библиотеках, пожалуйста, подтвердите это, и я приму его в качестве ответа.
Нет, в настоящее время вы не можете сделать это через спецификацию формата Python.Вместо этого используйте условное выражение.Например:
print(format(a, '+010,.2f') if a else "")
Python не имеет функции разделителя разделов, поэтому вы можете иметь разные форматы для положительных, отрицательных или нулевых чисел в одной строке.Вам придется использовать отдельные строки формата.
Как насчет определения функции:
def format_cond(val,fmt,cond=bool,otherwise=''): return format(val, fmt) if cond(val) else otherwise
if a: print(...)
format делает много вещей, но это не то, для чего он предназначен. Существует также очень простое решение:
format
if a == 0: print("") else: print(format(a, '+010,.2f'))