2017-01-04 1 views
0

Pythonのドキュメントでは、アライメント'<'は、フィールドを使用可能なスペース内で左揃えにすることを示しています。"<" and ">"は何をフォーマットするのですか?

このコード行は、各変数を10個のスペースまたは少なくとも10個のスペースに整列させることを意味しますか?

print("{:<10} {:<10} {:<10} £{:<10} £{:<10}".format(GTIN,product,Quantity,indprice,finprice)) 

答えて

1

<10書式フィールドの左部分の値のstr()変換を入れ、広い各フィールド少なくとも 10文字を行います。したがって、'foo'(3文字の長さ)の値は10文字の文字列を作成するために右側に7つのスペースが追加され、それは{..}フィールドを置き換える文字列です。

値が10文字以上必要な場合、そのフィールドは値の全文に置き換えられます。幅は最小の長さで、最大ではありません。

したがって、各{:<10}フィールドは、値の右側にスペースを使用して少なくとも10文字の文字列に置き換えられます。

デモ、左揃え5の最小幅のフィールドに値を埋め込む:

値が最小フィールド幅に左揃え、しかし foobarは長いので、総出力長である
>>> for value in ('f', 'foo', 'foobar'): 
...  formatted = '>{:<5}<'.format(value) 
...  print(len(value), len(formatted), formatted) 
... 
1 7 >f < 
3 7 >foo < 
6 8 >foobar< 

フィールドの成長が一致するようになりました。

+0

8桁の数字(「35619833」など)が表示されていますが、数字の前に3桁の空白が2桁ではないのはなぜですか? –

+0

@ Dolodo.RS: '{..}'フィールド間のスペース*を参照してください。それらはリテラルスペースで、 '{..}'フィールドの一部ではなく、文字通り出力に含まれます。 –

+0

@ Dolodo.RS:彼らは私のデモの '>'と '<'の文字や、あなたの文字列の ''£ ''の記号と変わりません。 –

関連する問題