Ya veo que no puedo hacer:
"%b %b" % (True, False)
en Python Supuse %b
que b (oolean). ¿Hay algo como esto?
Ya veo que no puedo hacer:
"%b %b" % (True, False)
en Python Supuse %b
que b (oolean). ¿Hay algo como esto?
Respuestas:
>>> print "%r, %r" % (True, False)
True, False
Esto no es específico de los valores booleanos: %r
llama al __repr__
método en el argumento. %s
(para str
) también debería funcionar.
%r
y %s
?
print(str("foo"))
simplemente imprime foo
en una nueva línea. print(repr("foo"))
sin embargo, imprime 'foo'
en una nueva línea, incluidas las comillas, ya que eso es lo que necesita escribir en el intérprete de Python para obtener el objeto correspondiente al argumento en Python.
También puede usar la clase de cadena 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);
Estos son los resultados.
True False
True False
1 0
1.000000 0.000000
1.000000e+00 0.000000e+00
Algunos de los %
especificadores de tipo de formato ( %r
, %i
) no están disponibles. Para más detalles, consulte el Mini-idioma de especificaciones de formato
{:_^5}
, '__1__'
te str(...)
atrapará a menos que seas booleano.
!s
: '{!s:_^5}'.format(True)
es'True_'
Para actualizar esto para Python-3, puede hacer esto
"{} {}".format(True, False)
Sin embargo, si desea formatear la cadena (por ejemplo, agregar espacios en blanco), se encuentra con Python que convierte el valor booleano en el valor C subyacente (es decir, un int), por ejemplo
>>> "{:<8} {}".format(True, False)
'1 False'
Para evitar esto, puede lanzar True
como una cadena, por ejemplo
>>> "{:<8} {}".format(str(True), False)
'True False'