Vedo che non posso fare:Come sono formattati i booleani in String in Python?
"%b %b" % (True, False)
in Python. Ho indovinato %b
per b (ooleano). C'è qualcosa di simile?
Vedo che non posso fare:Come sono formattati i booleani in String in Python?
"%b %b" % (True, False)
in Python. Ho indovinato %b
per b (ooleano). C'è qualcosa di simile?
>>> print "%r, %r" % (True, False)
True, False
Questo non è specifico per i valori booleani - %r
chiama il metodo __repr__
sull'argomento. %s
(per str
) dovrebbe funzionare anche.
Qual è la principale differenza tra '% r' e'% s'? – Stallman
Ho sempre pensato a questa distorsione, ma correggimi se sbaglio. % s (e quindi str()) mirano a rappresentare l'oggetto nel modo più trasparente possibile per gli umani. % r (e quindi repr()) mirano a rappresentare l'oggetto nel modo più trasparente possibile per python. Ad esempio, 'print (str (" foo "))' stampa semplicemente 'pippo' su una nuova riga. 'print (repr (" foo "))' stampa comunque ''foo'' su una nuova riga, comprese le virgolette, poiché è ciò che è necessario digitare nell'interprete python per ottenere l'oggetto corrispondente all'argomento in python. – bobismijnnaam
Se volete True False
uso:
"%s %s" % (True, False)
perché str(True)
è 'True'
e str(False)
è 'False'
.
o se si desidera 1 0
uso:
"%i %i" % (True, False)
perché int(True)
è 1
e int(False)
è 0
.
È inoltre possibile utilizzare il Formatter class di corda
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 dei progettisti di tipo %
-format (%r
, %i
) non sono disponibili. Per dettagli vedi Format Specification Mini-Language
Si noti che l'aggiunta di opzioni di formattazione [può rovinare tutto.] (Http://stackoverflow.com/q/36573222/241211) E.g. '{: _^5}' ti prenderà '' __1 __ ''a meno che tu non str (...)' i booleani. – Michael
È possibile [aggirare] (https://stackoverflow.com/a/48326865/241211) i problemi con le conversioni di tipo come '! S':' '{! S: _^5}'. Format (True) ' è ''True_'' – Michael
Cosa vuoi che il risultato sia? Vero e falso? Allora vuoi "% s". % b, quando esiste, è per binario (come in base-2). –
Ho sì! "% s" sembra funzionare bene. Rispondi a questa domanda e ottenere una risposta innescata. Ho usato "% s"% str (False). Vergogna su di me :) –
collegamento alla documentazione pertinente: http://docs.python.org/library/stdtypes.html#string-formatting-operations – bernie