问题:布尔在Python中如何格式化为字符串?
我看到我做不到:
"%b %b" % (True, False)
在Python中。我猜%b是b(oolean)。有这样的东西吗?
回答 0
>>> print "%r, %r" % (True, False)
True, False
这不是特定于布尔值的- 在参数上%r调用__repr__方法。 %s(对于str)也应该起作用。
回答 1
如果要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
您也可以使用字符串的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
某些%-format类型说明符(%r,%i)不可用。有关详细信息,请参见格式规范迷你语言
回答 3
要针对Python-3更新此代码,您可以执行此操作
"{} {}".format(True, False)
但是,如果要实际格式化字符串(例如,添加空格),则会遇到Python将布尔值强制转换为基础C值(即int)的情况,例如
>>> "{:<8} {}".format(True, False)
'1 False'
为了解决这个问题,您可以将True其转换为字符串,例如
>>> "{:<8} {}".format(str(True), False)
'True False'
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
