爲什麼我會在每個\ t之間獲得不同數量的空間,我將如何去解決這個問題?爲什麼python在使用tab時添加不同的空間長度?
print ("\tName1:\tName2:\tNumber1:\tNumber2:")
輸出:
Name1: Name2: Number1: Number2:
數字1之間的空間:和NUMBER2:是不一樣的前兩個;我怎麼去解決這個問題?
爲什麼我會在每個\ t之間獲得不同數量的空間,我將如何去解決這個問題?爲什麼python在使用tab時添加不同的空間長度?
print ("\tName1:\tName2:\tNumber1:\tNumber2:")
輸出:
Name1: Name2: Number1: Number2:
數字1之間的空間:和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
。
\ 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:
如果要固定間距,請使用空格。選項卡最有可能考慮標籤之間的字符串的長度,即嘗試'print(「\ tName1:\ tName2:\ tName3:\ tName4:」)'看看會發生什麼 – ryugie
@ryugie我看到,使用相同的字符串長度每個標籤給我相同數量的間距 – user3681585