各\ t間に異なる量のスペースが必要なのはなぜですか。これを修正するにはどうすればよいでしょうか?なぜタブを使用しているときに別のスペースの長さを追加するPythonですか?
print ("\tName1:\tName2:\tNumber1:\tNumber2:")
出力:
Name1: Name2: Number1: Number2:
数値1との間の空間:と数値2:最初の二つは同じではありません。これを修正するにはどうすればいいですか?
各\ t間に異なる量のスペースが必要なのはなぜですか。これを修正するにはどうすればよいでしょうか?なぜタブを使用しているときに別のスペースの長さを追加するPythonですか?
print ("\tName1:\tName2:\tNumber1:\tNumber2:")
出力:
Name1: Name2: Number1: Number2:
数値1との間の空間:と数値2:最初の二つは同じではありません。これを修正するにはどうすればいいですか?
コンソールには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
。
\ 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