文本格式错误:字符串格式说明符中不允许'='对齐
'=' 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"
不是数字,因此“ =”对齐处理代码会引发该异常。编写该消息是希望您知道它在说什么,因为您(暗含)要求“ =”对齐。
是的,我认为错误消息需要改进。我为此提出了一个问题。
以上是 文本格式错误:字符串格式说明符中不允许'='对齐 的全部内容, 来源链接: utcz.com/qa/418079.html