Python中的布尔值如何在字符串中格式化?
我发现我在Python里不能这样做:
"%b %b" % (True, False)
我猜%b是用来表示布尔值的。有没有类似的东西呢?
6 个回答
21
你还可以使用字符串的 Formatter 类
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
)是不可用的。想了解更多细节,可以查看 格式说明迷你语言
81
如果你想要 True False
,可以使用:
"%s %s" % (True, False)
因为 str(True)
的结果是 'True'
,而 str(False)
的结果是 'False'
。
或者如果你想要 1 0
,可以使用:
"%i %i" % (True, False)
因为 int(True)
的结果是 1
,而 int(False)
的结果是 0
。
279
>>> print "%r, %r" % (True, False)
True, False
这并不是只针对布尔值的情况 - %r
会调用传入参数的 __repr__
方法。%s
(用于 str
)也应该可以用。