web-dev-qa-db-fra.com

Comment les booléens sont-ils formatés dans Strings en Python?

Je vois que je ne peux pas faire:

"%b %b" % (True, False)

en Python. J'ai deviné %b pour b (oolean). Y a-t-il quelque chose comme ça?

150
Juanjo Conti
>>> print "%r, %r" % (True, False)
True, False

Ceci n'est pas spécifique aux valeurs booléennes - %r appelle le __repr__ méthode sur l'argument. %s _ (pour str) devrait également fonctionner.

222
danben

Si vous voulez True False Utilisez:

"%s %s" % (True, False)

parce que str(True) est 'True' et str(False) est 'False'.

ou si vous voulez 1 0 utilisez:

"%i %i" % (True, False)

parce que int(True) est 1 et int(False) est 0.

60
Desintegr

Vous pouvez également utiliser le classe Formatter de chaîne

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);

Ce sont les résultats

True False
True False
1 0
1.000000 0.000000
1.000000e+00 0.000000e+00

Certains %- spécificateurs de type de format (%r, %i) ne sont pas disponibles. Pour plus de détails, voir Mini-langage de spécification de format

16
Wolf