Python中的布尔值如何在字符串中格式化?

195 投票
6 回答
219667 浏览
提问于 2025-04-15 19:15

我发现我在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)也应该可以用。

撰写回答