はフォーマット文の{:X.Y}
を考えてみましょう。
値X
は、のパディングです。出力文字列は少なくともX
文字幅ですが、それ以上の文字列でもかまいません。 formatコマンドは、入力文字列がX
より短い場合、長さの違いを補うために出力文字列に空白を追加します。 X
は、フォーマットされたフィールドの最小幅のになります。
値Y
は、切り捨てです。出力文字列には、入力文字列の文字がY
以下になります。 Y
は、常にフォーマット済みフィールドの最大幅のになります。
Y
>X
場合、あなたの例が示すように、出力文字列は、少なくともX
文字、最大Y
文字になります。 X
>Y
の場合、書式設定された文字列には、入力文字列の最初のY
文字まで空白文字が含まれ、必要に応じて書式設定された文字列を埋め込みます(X
)。
レイアウトのフィールドが特定の幅でなければならない場合は、X
とY
をフィールド幅の両方に設定すると、正しく出力されます。
例:
print('#{:.4}#'.format('xylophone')) #include up to 4 characters (no minimum width specified)
#xylo#
print('#{:10.4}#'.format('xylophone')) #include up to 4 characters, but make the field at least 10 characters wide
#xylo #
優れた解説! – flywire