为什么不能在带格式说明符的f字符串表达式周围使用空格?

时间:2019-11-04 15:57:24

标签: python python-3.x f-string

当我将f字符串与格式说明符一起使用时

>>> x = 1
>>> f'{ x:02 }'

它给了我ValueError: Unknown format code '\x20' for object of type 'int'。要解决此问题,我必须从f字符串表达式中删除周围的空格,例如f'{x:02}'

为什么会这样?

1 个答案:

答案 0 :(得分:3)

给出f字符串表达式,例如f'{ x:02 }',该表达式的格式说明符部分开始,并包括冒号(:)之后的所有字符。这意味着02右边的空格是格式说明符的一部分。尽管错误说明了什么,如Chris Rands所说,空格是有效的格式代码。导致错误的原因是我们为整数使用了无效的格式说明符。在02之后添加空格会使说明符无效。

我们可以通过以下方式解决问题

>>> f'{ x:02}'

成功吸引了我01。但是,我主观不推荐这种样式用于f字符串表达式,因为它看起来不平衡,即,最左边的空间在表达式的另一端没有配对空间。我不会使用任何周围的空格(例如f'{x:02}')。


推荐阅读


编辑:我编辑了此答案以提供正确的解释。在先前的编辑中,我错误地指出空格不是格式中的有效代码。谢谢克里斯,更正。