使用f-string格式化布尔值

11

我希望已经有人回答过这个问题了,但是我搜寻了相关话题却没有找到答案。
我想使用Python3.6+ ,并使用f-string将布尔变量格式化为固定宽度。我有一些结果表格,想要在True和False值之间都保持五个字符的固定宽度。以下方式应该是正确的:

print(f"X = {True:5s}")

但是得到的却是:
ValueError: Unknown format code 's' for object of type 'bool'

我知道可以通过以下方式强制进行字符串转换:

print(f"X = {str(True):5}")

但是似乎很奇怪的是,不能使用格式说明符代码。我是否漏掉了某种语法变体?我已经阅读了PEP498,但它甚至没有提到布尔值。


不确定这是否符合您的要求,但是:print(f"X = {True!s:^5}")print(f"X = {True!r:^5}") - user10532452
可以,我会为您提供翻译。 - Hephaestus
我很好奇这种存储的目的是什么。 - Yaakov Bressler
1个回答

20

使用转换标志

print(f"X = {True!s:^5}")

或者

print(f"X = {True!r:^5}")

或者

print(f"X = {True!a:^5}")

其中!s调用str()!r调用repr()!a调用ascii()的值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接