2016-12-08 16 views
0

、このような何かを行うことによってセンタリングされる文字列を作成することが可能である:センターアライメント印刷形式指定子の実装の詳細

'{:^10}'.format('abc') 

"の意味パディング文字の総数が偶数の場合でも、「中心に置かれた」ということははっきりしていますが、それが奇妙なときはどうでしょうか?

私はバニラCのPython(とIPython)に上記を印刷、私はこれが右に余分なパッドの文字を入れて表示されます

​​

を取得します。ただし、docsにはこの動作の仕様が明示的には記載されていません。どこかで奇数のパディング文字が指定されている場合のセンタリング形式指定子の動作か、依存しない実装の詳細なのでしょうか?

答えて

2

これに頼ることができます。私はそれがどこに文書化されているかわからないが、standard python test suiteは、余分なスペースが右側に追加されていると主張する。 testは標準ライブラリの一部であるため、他のPython実装の出発点であり、可能な限り参照実装への準拠を目指しています。

+0

Helveticaのような可変幅文字はどうですか? – Marichyasana

+1

@Marichyasana - 私は質問を理解しているかどうかはわかりません。PythonはバイトコードとUnicode文字列を扱っています。それらは文字列をレンダリングするためにどのフォントが使用されるかについては何も知らないので、あなたがこれらの文字列で欲しいと思う方法を中心にしていると主張することができると思います。また、HTMLが空白を崩壊させるので、文字列をHTMLでレンダリングすると、あなたが望むように中央に配置されません。そのような場合は、おそらくレンダラーに何かをして、文字列をどのように中央揃えにするか(Pythonの管轄外にある) – mgilson

+0

@mgilsonを指定する必要があります。ありがとう。私のPR to Pyformat.ioは、おそらくあなたの答えに基づいて受け入れられました:https://github.com/ulope/pyformat.info/pull/38。 –

関連する問題