Как булевы форматируются в Строках в Python?

Я вижу, что не могу:

"%b %b" % (True, False)

в Python. Я догадался %b для b (oolean). Есть что-то вроде этого?

Ответ 1

>>> print "%r, %r" % (True, False)
True, False

Это не относится к логическим значениям - %r вызывает метод __repr__ для аргумента. %s (для str) также должен работать.

Ответ 2

Если вы хотите True False использовать:

"%s %s" % (True, False)

потому что str(True) - 'True', а str(False) - 'False'.

или если вы хотите 1 0 использовать:

"%i %i" % (True, False)

потому что int(True) - 1, а int(False) - 0.

Ответ 3

Вы также можете использовать класс Formatter строки

print "{0} {1}".format(True, False);
print "{0:} {1:}".format(True, False);
print "{0:d} {1:d}".format(True, False);
print "{0:f} {1:f}".format(True, False);
print "{0:e} {1:e}".format(True, False);

Это результаты

True False
True False
1 0
1.000000 0.000000
1.000000e+00 0.000000e+00

Некоторые из спецификаторов типа % -формата (%r, %i) недоступны. Подробнее см. Мини-язык спецификации формата