2017-03-29 6 views
0

だから私は行ごとに2つの「魚」を出力し、プログラムを持っている、と二匹の魚との距離がタブ文字「\トン」で、出力は次のようになります。Pythonのタブ間隔

enter image description here

私の質問は、たとえば、TheodoreがMargeよりも長く、それらの後ろに "\ t"という文字があることがわかります。だからサイモンとマギーはなぜ揃っているのですか?ホーマーとモウドはなぜ彼らの位置にいるのですか?私はいくつかの目に見えないグリディングがあると思っていますか?私はパイチャを使用しています

ありがとうございました!

+1

タブ文字は、テキストカーソルを次のタブストップに進めます。たとえば、カーソルが2番目のタブストップの直前にある場合、カーソルは2番目のタブストップの前に移動します。しかし、それが2番目のタブストップをちょうど過ぎていれば、3番目のタブストップに進みます。だから事態は部分的に並んでしまう。タブは、魔法によってどこに揃えるかを知りません。 – khelwood

+1

コンソールでテーブルのような効率を確保したい場合は、pycursesを参照してください。 –

+0

2つの魚の名前の組み合わせが "X"文字より大きい場合は1つのタブが必要です。 "X"より小さい場合は1つ以上のタブが必要です。 –

答えて

2

いくつかの目に見えないグリディングがあると思われますか?タブがやる正確に何

、基本的にグリッド線である、次の使用可能なタブストップにカーソル位置を移動します。タップトップは、通常4番目または8番目の列ごとに与えられます。

8列目のタブストップ構成の列5にある\tタブを印刷すると、次のタブストップ列は8桁目になります。ただし、これまでのテキストでは8列目に移動した場合は、ストップは列16にあります。次の文字のセットが印刷される場所は、これまでのテキストがどれくらい遠く離れているかによって異なります。

出力列を正確に制御する必要がある場合は、タブを使用しないでください。最小のフィールドサイズでstring formattingを使用して、データをフォーマットします。

'<>< {:30} <>< {:30}'.format(
    '({}, {})'.format(vara, varb), 
    '({}, {})'.format(varc, vard)) 

ここで、出力文字列は、各フィールドで30文字以上の差異を補うためのスペースを追加します。

+0

ありがとう、これはjavaで違うのですか?私はjavaで "\ t"を追加すると文字通りタブの距離を追加すると考えました – yyin

+0

@JavaLearner:いいえ、タブはどこでも同じように動作します。 –

+0

ありがとう、私はタブとの誤解を抱えてきたと思います。 – yyin