为什么string方法str.format(value)对于整数值和字符串值有不同的默认填充和空字符串?

问题描述 投票:1回答:1

为什么str.format()填充从左边开始为整数,但是对于字符串是默认填充?对我来说没有意义,为什么整数和字符串都不会有一个默认填充。

例如,如果value是一个字符串,它的中心位于左侧:

>>> "{value:20}".format(value="Guido van Rossum")
'Guido van Rossum    '
>>> "{value:>20}".format(value="Guido van Rossum")
'    Guido van Rossum'

但是如果值是一个整数,则默认情况下它位于右侧:

>>> "{value:20}".format(value=8)
'                   8'
>>> "{value:<20}".format(value=8)
'8                   '

我希望它对整数值和字符串值的工作方式相同。这种行为有什么需要?

python python-3.7
1个回答
2
投票

这可能应该以非主题或基于意见的方式结束,因为你知道我们这样做的技术答案是“因为这是函数的设计者所选择的”。

但是fwiw,这种格式化惯例非常常见。打开excel。将列拖出相当宽。在该列的一个单元格中键入一个短数字值,在另一个单元格中键入一个短字符串。

如果这不是您需要的行为,请使用<>以确保根据您的需要进行一致的填充。如果它不是您所期望的,除了调整您的期望之外,我不知道该告诉您什么,因为这是该功能的记录行为。

© www.soinside.com 2019 - 2024. All rights reserved.