2017-05-14 32 views
0

Pythonは、format文のサイズよりも大きな形式を出力します。次のステートメントは、文字列の長さを4文字に指定しますが、出力は文字列に合わせて増加します。特定のレイアウトが必要な場合、これをコード内でどのように管理しますか?Python出力形式の文字列よりも大きい文字列

print('#{:4.4}#'.format('xylophone')) 
print('#{:4.5}#'.format('xylophone')) 
print('#{:4.10}#'.format('xylophone')) 

出力:

​​

答えて

0

はフォーマット文の{:X.Y}を考えてみましょう。

Xは、のパディングです。出力文字列は少なくともX文字幅ですが、それ以上の文字列でもかまいません。 formatコマンドは、入力文字列がXより短い場合、長さの違いを補うために出力文字列に空白を追加します。 Xは、フォーマットされたフィールドの最小幅のになります。

Yは、切り捨てです。出力文字列には、入力文字列の文字がY以下になります。 Yは、常にフォーマット済みフィールドの最大幅になります。

Y>X場合、あなたの例が示すように、出力文字列は、少なくともX文字、最大Y文字になります。 X>Yの場合、書式設定された文字列には、入力文字列の最初のY文字まで空白文字が含まれ、必要に応じて書式設定された文字列を埋め込みます(X)。

レイアウトのフィールドが特定の幅でなければならない場合は、XYをフィールド幅の両方に設定すると、正しく出力されます。

例:

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  # 
+0

優れた解説! – flywire

関連する問題