为什么python在使用tab时会添加不同的空间长度?

2024-06-26 13:40:09 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么每个\t之间有不同数量的空格,我将如何着手解决这个问题?你知道吗

print ("\tName1:\tName2:\tNumber1:\tNumber2:")

输出:

Name1:  Name2:  Number1:    Number2:

数字1:和数字2:之间的间隔与前两个不同;我该如何着手解决这个问题?你知道吗


Tags: 数量间隔数字空格printname1name2number1
3条回答

\t前进到下一个制表位;这通常设置为8列的下一个倍数。换言之,它没有坏:它的工作方式和它应该的一样。你知道吗

如果希望标签之间有相同数量的空格,请使用固定数量的空格,而不是制表符。例如:

space = "    "
print "Name1" + space +
      "Name2" + space +
      "Name3" + space +
      "Name4"

也可以使用formatted output。你知道吗

下面是在每个字符串之间放置n空格的简单方法。你知道吗

>>> n = 3
>>> print((' '*n).join(('Name1:', 'Name2:', 'Number1:', 'Number2:')))
Name1:   Name2:   Number1:   Number2:

控制台每8个空格有一个制表位。如果传递了制表位,它将移动到下一个制表位。您可以在此处看到制表位的位置:

print("\tName1:\tName2:\tNumber1:\tNumber2:") 
print('1234567890'*5)
print('\t^'*5)
        Name1:  Name2:  Number1:        Number2:
123456781234567812345678123456781234567812345678
        ^       ^       ^       ^       ^

它确保标签后面至少还有一个空格。这就是Number2:被移到下一个制表位的原因。你知道吗

如果要以预先固定的间距打印,可以按以下方式进行:

header = ['Name1:', 'Name2:', 'Number1:', 'Number2:']
# set the width of the headers as the widest string length plus 4
width = max(len(h) for h in header) + 4
print('{: <w}{: <w}{: <w}{: <w}'.replace('w',str(width)).format(*header))

# output:
Name1:      Name2:      Number1:    Number2:

print语句有点混乱,但它将填充每个字符串的空格数设置为width。你知道吗

相关问题 更多 >