What the equivalent way to str.format
function for converting booleans into strings?
>>> "%5s" % True
' True'
>>> "%5s" % False
'False'
Please note the space in ' True'
. This always makes the length the same for 'True' and 'False'.
I've check the methods in this post:
How are booleans formatted in Strings in Python?
None of them can do the same thing.
You can use type conversion flags to do what you wanted:
'{:_>5}'.format(True) # Oh no! it's '____1'
'{!s:_>5}'.format(True) # Now we get '_True'
Note the !s
. I used an underscore to show the padding more clearly. It also works with f-strings:
f'{True:_>5}' # '____1'
f'{True!s:_>5}' # '_True'
6.1.3. Format String Syntax
[...]
The conversion field causes a type coercion before formatting. Normally, the job of formatting a value is done by the
__format__()
method of the value itself. However, in some cases it is desirable to force a type to be formatted as a string, overriding its own definition of formatting. By converting the value to a string before calling__format__()
, the normal formatting logic is bypassed.Three conversion flags are currently supported:
'!s'
which callsstr()
on the value,'!r'
which callsrepr()
and'!a'
which callsascii()
.Some examples:
"Harold's a clever {0!s}" # Calls str() on the argument first "Bring out the holy {name!r}" # Calls repr() on the argument first "More {!a}" # Calls ascii() on the argument first
You can use the str()
function. More about it here.
Here are some examples:
x = str(True)
y = False
print( type(x) )
<class 'str'> # This is a string
print( type(y) )
<class 'bool'> # This is a boolean
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With