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

标签 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}'

为什么会这样?

最佳答案

给定一个 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/

相关文章:

regex - 我如何在Python中使用F字符串和正则表达式

python - 类的最大递归深度

python-3.x - 如何从python中的列表中删除单词

python - Python 3.6 中的 f-string 调试速记

python - 使用 matplotlib 在网络中设置动态节点形状

python - 类型错误 : unsupported operand type(s) for *: 'int' and 'NoneType'

python - 为什么 f 字符串比 str() 解析值更快?

python - 有没有办法在我的网络应用程序中使用 openshift 作为 oauth 身份验证器?

python - 如何在内部计算 numpy 数组的数据类型?

python - 反转 networkx 图中的一条边