我希望通过字符串格式实现这种输出:
GBP......0.8639......0.8399
我尝试使用以下代码(i 代表货币,e[0] 和 e[1] 是买入和卖出值):
"{i:.<10}{e[0]:.^6}{e[1]:.>6}".format(i=i, e=e)
但是上面的代码并没有将第二个数字向右对齐,而只是将其添加到第一个数字的后面,如下所示:
GBP.......0.86390.8399
我该如何纠正这个问题?
最佳答案
作为通用解决方案:
如果您希望右列、中列和左列分别右对齐、居中对齐、左对齐,请使用此格式字符串:
>>> '{0:.<10}{1:.^10}{2:.>10}'.format('GBP', 0.8639, 0.8399) 'GBP.........0.8639......0.8399' # Another example >>> '{0:.<10}{1:.^10}{2:.>10}'.format('GBPTEST', 0.90, 0.8) 'GBPTEST......0.9...........0.8'
或者,如果您希望除最右边的列之外的所有列都右对齐,则使用此格式字符串:
>>> '{0:.<10}{1:.>10}{2:.>10}'.format('GBP', 0.8639, 0.8399) 'GBP...........0.8639....0.8399' # Another example >>> '{0:.<10}{1:.>10}{2:.>10}'.format('GBPTEST', 0.90, 0.8) 'GBPTEST..........0.9.......0.8'
或者,如果您希望所有列左对齐,则使用此格式字符串:
>>> '{0:.<10}{1:.<10}{2:<10}'.format('GBP', 0.8639, 0.8399) 'GBP.......0.8639....0.8399 ' # Another example >>> '{0:.<10}{1:.<10}{2:<10}'.format('GBPTEST', 0.90, 0.8) 'GBPTEST...0.9.......0.8 '
根据您需要的列大小将每个参数的值更改为 10。
<小时/>下面是问题中提到的特定于参数类型的格式字符串:
>>> '{i:.<10}{e[0]:.^10}{e[1]:.>10}'.format(i='GBP', e=(0.8639, 0.8399))
'GBP.........0.8639......0.8399'
# Another example
>>> '{i:.<10}{e[0]:.^10}{e[1]:.>10}'.format(i='GBPTEST', e=(0.90, 0.8))
'GBPTEST......0.9...........0.8'
关于python - 与字符串格式对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40978592/