文本格式错误:字符串格式说明符中不允许'='对齐

'=' alignment以下错误消息是什么意思,为什么此代码会导致该错误?

>>> "{num:03}".format(num="1")

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

ValueError: '=' alignment not allowed in string format specifier

该代码有一个细微的问题:输入值"1"是文本,而不是数字。但是错误消息似乎与此无关。

错误消息中没有任何内容表明“’=’对齐”为何相关,并且未出现在代码中。那么发出该错误消息的意义何在?

回答:

出现错误信息的原因'=' alignment是格式说明符已隐含此信息。

str.format

格式规范的迷你语言解析器已决定对齐方式说明“=”,因为:

在width字段前面加上零(‘0’)字符可启用数字类型的符号感知零填充。这等效于对齐类型为’=’的填充字符‘0’。

因此,通过指定0N为“对N宽度进行零填充”,可以隐含“输入为数字类型”和“零应介于符号和数字之间”。后者的含义是'=' alignment

由于该值"1"不是数字,因此“ =”对齐处理代码会引发该异常。编写该消息是希望您知道它在说什么,因为您(暗含)要求“ =”对齐。

是的,我认为错误消息需要改进。我为此提出了一个问题。

以上是 文本格式错误:字符串格式说明符中不允许&#39;=&#39;对齐 的全部内容, 来源链接: utcz.com/qa/418079.html

回到顶部