Text formatting error: '=' alignment not allowed in string format specifier

前端 未结 6 1567
庸人自扰
庸人自扰 2020-12-30 19:24

What does \'=\' alignment mean in the following error message, and why does this code cause it?

>&         


        
6条回答
  •  盖世英雄少女心
    2020-12-30 19:57

    The error message occurs because '=' alignment has been implied by the format specifier.

    The str.format format spec mini-language parser has decided on the alignment specifier “=” because:

    Preceding the width field by a zero ('0') character enables sign-aware zero-padding for numeric types. This is equivalent to a fill character of '0' with an alignment type of '='.

    So by specifying 0N as the “zero-padding to N width”, you have implied both “the input is a numeric type”, and “the zeros should go between the sign and the digits”. That latter implication is what is meant by '=' alignment.

    Since the value "1" is not numeric, the “=”-alignment handling code raises that exception. The message is written expecting you know what it's talking about because you requested (by implication) the “=” alignment.

    Yes, I think that error message needs to be improved. I've raised an issue for that.

提交回复
热议问题