Python 这个格式化代码是如何工作的?
我总是要知道为什么,而不仅仅是如何,所以我决定: 这是如何工作的:Python 这个格式化代码是如何工作的?,python,string,Python,String,我总是要知道为什么,而不仅仅是如何,所以我决定: 这是如何工作的: '{0:01.2f}'.format(5.555) #returns '5.55' '{0:01.1f}'.format(5.555) #returns '5.5' '{0:1.2f}'.format(5.555) #returns '5.55' again '{0:1.1f}'.format(5.555) #returns '5.5' again 当我有额外的零时,为什么不通过返回“05.5”而不是仅仅返回
'{0:01.2f}'.format(5.555) #returns '5.55'
'{0:01.1f}'.format(5.555) #returns '5.5'
'{0:1.2f}'.format(5.555) #returns '5.55' again
'{0:1.1f}'.format(5.555) #returns '5.5' again
当我有额外的零时,为什么不通过返回“05.5”而不是仅仅返回“5.5”来添加零填充呢。这似乎不起作用
另外,为什么字符串是0:1.1f而不是0:0.1f,等等。使用小数点前的数字1而不是零只是一种惯例,还是这就是语法?这是因为0字符允许零填充,但设置了1的宽度。将宽度设置为2,如“{0:02.1f}”,您将看到一个前导0 编辑-实际上,我不确定2是否足够,因为我不知道小数点后的数字越多,它的行为如何。为了安全起见,将其设置为5,然后看看它会做什么 编辑2-好的,我刚试过。宽度对应于总宽度,包括所有数字和小数点。所以你会得到这个:
>>> '{0:05.2f}'.format(5.555)
'05.55'
请注意,现在字符串的总长度为5,前导为0,因为启用了零填充,并且由于。2,它将截断为小数点后的2位。您应该指定一个宽度,并考虑所有字符,包括小数和点。如果您想要05.55,则为5个字符,因此:
>>>'{0:05.2f}'.format(5.555)
'05.55'
规范如下: