我看到我做不到:
"%b %b" % (True, False)
在Python中。我猜测%b
为b(oolean)。有这样的事吗?
答案 0 :(得分:215)
>>> print "%r, %r" % (True, False)
True, False
这不是特定于布尔值 - %r
调用参数上的__repr__
方法。 %s
(对于str
)也应该有用。
答案 1 :(得分:58)
如果您想True False
使用:
"%s %s" % (True, False)
因为str(True)
为'True'
且str(False)
为'False'
。
或者如果您希望1 0
使用:
"%i %i" % (True, False)
因为int(True)
为1
且int(False)
为0
。
答案 2 :(得分:14)
您也可以使用Formatter class字符串
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
某些%
- 格式类型说明符(%r
,%i
)不可用。有关详细信息,请参阅Format Specification Mini-Language
答案 3 :(得分:6)
要针对Python-3更新此功能,您可以
"{} {}".format(True, False)
但是,如果您想实际格式化字符串(例如,添加空格),则会遇到Python将布尔值转换为基础C值(即int)的情况,例如
>>> "{:<8} {}".format(True, False)
'1 False'
要解决此问题,您可以将True
转换为字符串,例如
>>> "{:<8} {}".format(str(True), False)
'True False'