当我以类似的方式使用带有格式说明符的 f 字符串时
>>> x = 1
>>> f'{ x:02 }'
它给了我 ValueError: Unknown format code '\x20' for object of type 'int'
。要解决此问题,我必须从 f 字符串表达式中删除周围的空格,例如 f'{x:02}'
。
为什么会这样?
最佳答案
给定一个 f 字符串表达式,例如 f'{ x:02 }'
,表达式的格式说明符部分开始并包括冒号后的所有字符 (:
).这意味着 02
右侧的空格是格式说明符的一部分。尽管错误说了什么,如 Chris Rands 所说, 空格是有效的格式代码。导致错误的原因是我们对整数使用了无效的格式说明符。在 02
之后添加空格会使说明符无效。
我们可以解决这个问题
>>> f'{ x:02}'
它成功地让我 01
。但是,我主观上不推荐 f 字符串表达式使用这种样式,因为它看起来不平衡,即最左边的空间在表达式的另一端没有配对空间。我不会改用任何周围的空格(例如 f'{x:02}'
)。
推荐阅读
编辑:我编辑了这个答案以提供正确的解释。在之前的编辑中,我错误地指出空格不是格式中的有效代码。谢谢 Chris 的更正。
关于python - 为什么我不能在带有格式说明符的 f 字符串表达式周围使用空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58696946/