|
发表于 2023-6-24 11:43:19
|
显示全部楼层
本楼为最佳答案
Python 中的 format 函数提供了一种灵活的方式来控制字符串的格式。在你的例子中,你在 format 函数中使用了填充(padding)特性,但这个填充特性对负数的显示并不像你期望的那样。
在 {:0>10} 中:
· : 是格式说明符的开始。
· 0 是你要填充的字符。
· > 是对齐方式,这里代表右对齐。
· 10 是字符串的宽度。
如果数值为负,负号 - 会被看做数值的一部分。因此,如果你使用右对齐,填充字符(在这里是 0 )会被放在负号和数值之间,而不是放在负号前面。这就是为什么你会看到 '000000-102' 而不是 '-000000102' 。
如果你想让负号在所有填充字符前面,可以改变一下代码的结构,你可以把符号和数值分开处理:
- num = -102
- "{:0>10}".format(abs(num)) if num >= 0 else "-" + "{:0>10}".format(abs(num))
复制代码
这样,你就可以得到 '-000000102' 。这段代码首先检查数值是否为负,如果是,就先放一个负号,然后添加填充的 0 和数值。 |
|