How are booleans formatted in Strings in Python?
Solution 1:
>>> print "%r, %r" % (True, False)
True, False
This is not specific to boolean values - %r
calls the __repr__
method on the argument. %s
(for str
) should also work.
Solution 2:
If you want True False
use:
"%s %s" % (True, False)
because str(True)
is 'True'
and str(False)
is 'False'
.
or if you want 1 0
use:
"%i %i" % (True, False)
because int(True)
is 1
and int(False)
is 0
.
Solution 3:
You may also use the Formatter class of string
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);
These are the results
True False
True False
1 0
1.000000 0.000000
1.000000e+00 0.000000e+00
Some of the %
-format type specifiers (%r
, %i
) are not available. For details see the Format Specification Mini-Language