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?
python
boolean
string-formatting
Juanjo Conti
la source
la source
Réponses:
Ce n'est pas spécifique aux valeurs booléennes -
%r
appelle la__repr__
méthode sur l'argument.%s
(pourstr
) devrait également fonctionner.la source
%r
et%s
?print(str("foo"))
imprime simplementfoo
sur une nouvelle ligne.print(repr("foo"))
cependant imprime'foo'
sur une nouvelle ligne, y compris les guillemets, puisque c'est ce que vous devez taper dans l'interpréteur python pour obtenir l'objet correspondant à l'argument en python.Si vous souhaitez
True False
utiliser:parce que
str(True)
c'est'True'
etstr(False)
est'False'
.ou si vous souhaitez
1 0
utiliser:parce que
int(True)
c'est1
etint(False)
est0
.la source
Vous pouvez également utiliser la classe Formatter de string
Voici les résultats
Certains des
%
spécificateurs de type -format (%r
,%i
) ne sont pas disponibles. Pour plus de détails, voir le mini-langage de spécification de formatla source
{:_^5}
, vous obtiendrez à'__1__'
moins que vous ne soyezstr(...)
les booléens.!s
:'{!s:_^5}'.format(True)
is'True_'
Pour mettre à jour cela pour Python-3, vous pouvez le faire
Cependant, si vous voulez réellement formater la chaîne (par exemple, ajouter un espace blanc), vous rencontrez Python convertissant le booléen dans la valeur C sous-jacente (c'est-à-dire un int), par exemple
Pour contourner cela, vous pouvez lancer
True
une chaîne, par exemplela source