-1

有没有一种方法可以使我的输出以这样的方式右对齐:

 Item: $  13.69
  Tax: $   5.30
  Oth: $   2.50  
---------------
Total: $  99.80  

请注意,我使用的是 Python 3。

4

3 回答 3

5

您可以使用.format字符串的方法来执行此操作:

fmt = '{0:>5}: ${1:>6.2f}'
print(fmt.format('Item', 13.69)) # Prints ' Item: $  13.69'
print(fmt.format('Tax', 5.3)) 
print(fmt.format('Oth', 2.5))
print('-'*len(fmt.format('Item', 13.69))) # Prints as many '-' as the length of the printed strings
print(fmt.format('Total', 99.8))
# etc...

'{0:>5}' 部分是说“取第 0 个给定的项目.format,并在 5 个空格内右对齐”。'{1:>6.2f}' 部分是说将第一项赋予给.format,在 6 个空格内右对齐,格式为带 2 个小数位的小数。

当然,在实际代码中,这可能是循环的一部分。

于 2013-09-29T15:41:52.953 回答
0

使用字符串格式:

print("$%6s" % dec_or_string)
于 2013-09-29T15:41:42.447 回答
0

您可以在要对齐的所有项目的文本前使用相同数量的空格。

另一种选择是使用str.format运算符,如此所述。

于 2013-09-29T15:35:01.573 回答