为什么我会在每个\ t之间获得不同的空间量以及如何解决此问题?
print ("\tName1:\tName2:\tNumber1:\tNumber2:")
输出:
Name1: Name2: Number1: Number2:
Number1:和Number2:之间的空格与前两个不一样;我该如何解决这个问题?
答案 0 :(得分:1)
控制台每8个空格都有制表位。如果您通过制表位,它将移至下一个制表位。您可以在此处查看制表位的位置:
print("\tName1:\tName2:\tNumber1:\tNumber2:")
print('1234567890'*5)
print('\t^'*5)
Name1: Name2: Number1: Number2:
123456781234567812345678123456781234567812345678
^ ^ ^ ^ ^
确保选项卡后至少仍有1个空格。这就是为什么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
填充每个字符串的空格数。
答案 1 :(得分:0)
\ t前进到下一个制表位;这通常设置为8列的下一个倍数。换句话说,它没有被破坏:它的运作正如它应该的那样。
如果您希望标签之间有相同数量的空格,请使用固定数量的空格,而不是制表符。例如:
space = " "
print "Name1" + space +
"Name2" + space +
"Name3" + space +
"Name4"
您也可以使用formatted output。
答案 2 :(得分:0)
这是在每个字符串之间放置n
空格的简单方法。
>>> n = 3
>>> print((' '*n).join(('Name1:', 'Name2:', 'Number1:', 'Number2:')))
Name1: Name2: Number1: Number2: