当我将f字符串与格式说明符一起使用时
>>> x = 1
>>> f'{ x:02 }'
它给了我ValueError: Unknown format code '\x20' for object of type 'int'
。要解决此问题,我必须从f字符串表达式中删除周围的空格,例如f'{x:02}'
。
为什么会这样?
答案 0 :(得分:3)
给出f字符串表达式,例如f'{ x:02 }'
,该表达式的格式说明符部分开始,并包括冒号(:
)之后的所有字符。这意味着02
右边的空格是格式说明符的一部分。尽管错误说明了什么,如Chris Rands所说,空格是有效的格式代码。导致错误的原因是我们为整数使用了无效的格式说明符。在02
之后添加空格会使说明符无效。
我们可以通过以下方式解决问题
>>> f'{ x:02}'
成功吸引了我01
。但是,我主观不推荐这种样式用于f字符串表达式,因为它看起来不平衡,即,最左边的空间在表达式的另一端没有配对空间。我不会使用任何周围的空格(例如f'{x:02}'
)。
推荐阅读
编辑:我编辑了此答案以提供正确的解释。在先前的编辑中,我错误地指出空格不是格式中的有效代码。谢谢克里斯,更正。