如何在Python中的string格式化布尔值?

我看到我不能这样做:

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

在Python中。 我猜测%b为b(oolean)。 有这样的事吗?

 >>> print "%r, %r" % (True, False) True, False 

这不是特定于布尔值的 – %r在参数上调用__repr__方法。 %s (对于str )也应该起作用。

如果你想True False使用:

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

因为str(True)'True'str(False)'False'

或者如果你想要1 0使用:

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

因为int(True)1int(False)0

您也可以使用Formatter类的string

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

这是结果

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

某些%格式types说明符( %r%i )不可用。 有关详细信息,请参阅格式规范迷你语言