True/False formats as 1/0 in a fixed width string

Dave Angel davea at
Wed Mar 27 09:55:35 CET 2013

On 03/27/2013 04:40 AM, Frank Millman wrote:
> Hi all
> This is a bit of trivia, really, as I don't need a solution.
> But someone might need it one day, so it is worth mentioning.
>  >>> '{}'.format(True)
> 'True'
>  >>> '{:<10}'.format(True)
> '1         '
> One might want to format True/False in a fixed width string, but it
> returns 1/0 instead. Is there any way to make this work?
> Frank Millman

Easiest way is to surround the boolean variable with repr()

flag = True

An alternative is to just use something like:

["False     ","True      "][flag]

making sure the two strings are of the same length.

(You didn't specify version, but I tested these with CPython 2.7.3)


More information about the Python-list mailing list