Vedo che non posso fare:
"%b %b" % (True, False)
in Python. Ho indovinato %b
per b (oolean). C'è qualcosa del genere?
Vedo che non posso fare:
"%b %b" % (True, False)
in Python. Ho indovinato %b
per b (oolean). C'è qualcosa del genere?
Risposte:
>>> print "%r, %r" % (True, False)
True, False
Questo non è specifico per i valori booleani: %r
chiama il __repr__
metodo sull'argomento. %s
(per str
) dovrebbe funzionare anche.
%r
e %s
?
print(str("foo"))
stampa semplicemente foo
su una nuova riga. print(repr("foo"))
tuttavia stampa 'foo'
su una nuova riga, comprese le virgolette, poiché è quello che devi digitare nell'interprete python per ottenere l'oggetto corrispondente all'argomento in python.
È inoltre possibile utilizzare la classe di stringa 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);
Questi sono i risultati
True False
True False
1 0
1.000000 0.000000
1.000000e+00 0.000000e+00
Alcuni %
specificatori del tipo di formato ( %r
, %i
) non sono disponibili. Per i dettagli, consultare la mini lingua delle specifiche del formato
{:_^5}
ti prenderà a '__1__'
meno che tu non sia str(...)
il booleano.
Per aggiornare questo per Python-3 puoi farlo
"{} {}".format(True, False)
Tuttavia, se si desidera formattare effettivamente la stringa (ad es. Aggiungere uno spazio bianco), si incontra Python che lancia il booleano nel valore C sottostante (cioè un int), ad es.
>>> "{:<8} {}".format(True, False)
'1 False'
Per ovviare a questo puoi lanciare True
come una stringa, ad es
>>> "{:<8} {}".format(str(True), False)
'True False'